topic1 = app.topic('topic1', value_type=str, consumer_id='consumer_group1')
topic2 = app.topic('topic2', value_type=str, consumer_id='consumer_group2')
或有什么方法可以通过命令行在脚本中启动两个应用程序?我正在尝试
faust -A test_faust:app1,app2 worker
但是给出了错误
ValueError: Component 'app1,app2' of 'test_faust:app1,app2' is not a valid identifier
我找到了一个解决方案。关键是将两个应用程序传递给工人:
import asyncio
import nest_asyncio
nest_asyncio.apply()
async def start_worker(worker: faust.Worker) -> None:
await worker.start()
def manage_loop():
loop = asyncio.get_event_loop_policy().get_event_loop()
try:
worker = faust.Worker(*[app1, app2], loop=loop)
loop.run_until_complete(start_worker(worker))
loop.run_forever()
finally:
worker.stop_and_shutdown()
worker.close()
if __name__=='__main__':
manage_loop()
然后开始启动应用程序,您需要调用
python test_faust.py worker