我正在尝试让浮士德代理在烧瓶视图/端点内投射消息, 我找不到任何示例,我真的很努力。
有人尝试成功吗? 文档说使用gevent或eventlet作为通往asyncio的桥梁,但不幸的是无法理解
答案 0 :(得分:0)
您可以尝试使用gevent或eventlet monkeypatch
来进行烧瓶应用。据我所知,由于桥aiogevent在pip中不再可用,因此eventlet是唯一正在运行的事件。
另一种方法是委派Flask应用程序仅生成带有pykafka或kafka-python的消息。这样,您将使两种应用程序保持隔离,烧瓶生产和耗费时间。请注意,默认情况下,浮士德将尝试创建没有internal
标志且带有1个副本的主题,而内部主题具有8个副本。
答案 1 :(得分:0)
浮士德文档有整合烧瓶和浮士德的建议。它涉及使用gevent
,但我不认为它需要进行猴子补丁。
从文档(https://faust.readthedocs.io/en/latest/faq.html):
This approach works with any blocking Python library that can work with gevent.
Using gevent requires you to install the aiogevent module, and you can install this as a bundle with Faust:
$ pip install -U faust[gevent]
Then to actually use gevent as the event loop you have to either use the -L option to the faust program:
$ faust -L gevent -A myproj worker -l info
or add import mode.loop.gevent at the top of your entry point script:
#!/usr/bin/env python3
import mode.loop.gevent
REMEMBER: It’s very important that this is at the very top of the module, and that it executes before you import libraries.