из multiprocessing. Эти два процесса связаны между собой через event, после отработки функций первого процесса, запускаются функции в втором процессе, после окончания, снова запрускаются функции из первого процесса и так по кругу.
Первый процесс это скачивание данных с различных сервисов и обновление данных в базе данных
Второй процесс это обработка данных из базы данных.
Очень важно чтобы одна итерация данного круга занимала не более 30 секунд. Проблема заключается в том что в первом процессе появились такие функции которые выпадают из временного тайминга. Вопрос - Как вынести некоторые функции из asyncio.TaskGroup чтобы они работали отдельно? Я конечно могу создать третий процесс и запихать все эти функции туда, но не сильно охото так поступать.
Функции в первом процессе имеют такой запуск:
async def main_update_async(event):
while True:
if not event.is_set():
async with asyncio.TaskGroup() as tg:
...
def main_update(event):
asyncio.run(main_update_async(event))
У меня вопрос как в одном файле сделать два не зависимых циклов событий? в первом цикле у меня все функции которые укладываются в временной тайминг, а втором цикле функции прожорливые на время
Что значит "прожорливые" ? Какого рода нагрузка? Там у тебя CPU-bound ?
нееет. В плане того что у меня одна итерация должна проходить не более 30 секунд. Но есть функции которые больше занимаю времени на выполнение
Нифига не понял, а зачем для этого два разных event loop ?
Возможно два разных и не надо. У меня знаний походу не хватает до конца объяснить, очень печальо
Обсуждают сегодня