Несколько асинхронных циклов - PullRequest
0 голосов
/ 11 января 2019

Я внедряю сервис в мультисервисном приложении Python. Эта служба будет ожидать отправки запросов в очередь повторного выполнения и обрабатывать их, когда они будут доступны.

async def foo():
    while True:
        _, request = await self.request_que.brpop(self.name)
        # processing request ...

И я добавляю эту foo() функцию в цикл событий asyncio:

loop = asyncio.new_event_loop()
asyncio.ensure_future(self.handle(), loop=loop)
loop.run_forever()

Главный вопрос: нормально ли это делать на нескольких (скажем, 3 или 4) разных сервисах, что приводит к одновременному запуску нескольких асинхронных циклов? Вредит ли это ОС?

1 Ответ

0 голосов
/ 11 января 2019

Простой ответ: да. Это хорошо. Ранее я реализовал сервис, который работает в одном цикле asyncio и порождает дополнительные процессы, которые выполняются в своем собственном цикле (в пределах одной и той же машины).

...