Интегрируйте колбу с Faust - PullRequest
2 голосов
/ 25 апреля 2019

Я пытаюсь заставить агента faust отправить сообщение внутри представления / конечной точки фляги, Я не могу найти ни одного примера, и я действительно изо всех сил.

Кто-нибудь пробовал это успешно? В документах говорится, что Gevent или Eventlet используются в качестве моста к Asyncio, но, к сожалению, понять не могу

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

В документах faust есть предложение по интеграции колбы и faust. Он включает в себя использование gevent, но я не верю, что для этого требуется monkeypatching.

Из документов (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.
0 голосов
/ 03 мая 2019

Вы можете попробовать monkeypatch ваше приложение для колб с помощью gevent или eventlet. Насколько я знаю, eventlet - единственный, который в настоящее время работает, поскольку мост aiogevent больше не доступен в пипсах.

Другой подход заключается в делегировании вашего приложения Flask только для создания сообщений с pykafka или kafka-python . Таким образом, вы будете держать оба приложения изолированными, колбу и мусор. Обратите внимание, что по умолчанию faust будет пытаться создавать темы без флага internal с 1 репликой и внутренних тем с 8 репликами.

...