LINUX.ORG.RU

Pyrogram в Celery таске не закрывается.

 , ,


0

1

Возникла такая проблема. Пробую написать обычный скрипт, который подключается к аккаунту телеги на Python, получает информацию обо мне и сразу закрывается:

client.start()
print(client.get_me())
client.stop()

Если же я пробую выполнить такое в Celery таске, то он корректно подключается и на этом зависает. Те печати информации обо мне нету, как и дисконнекта. Последние строчки лога -

[2019-02-17 00:51:32,234: INFO/ForkPoolWorker-2] Connecting...
[2019-02-17 00:51:33,712: INFO/ForkPoolWorker-2] Connected! DC2 - IPv4 - TCPAbridgedO
[2019-02-17 00:51:36,157: INFO/ForkPoolWorker-2] Session initialized: Layer 91
[2019-02-17 00:51:36,157: INFO/ForkPoolWorker-2] Device: CPython 3.6.7 - Pyrogram 🔥 0.11.0
[2019-02-17 00:51:36,158: INFO/ForkPoolWorker-2] System: Linux 4.15.0-43-generic (EN)
Можно ли как-то решить проблему. Как понимаю, проблема тут из-за Celery и асинхронности pyrogram. Но как решить не пойму

Потому что надо использовать task_logger, а не print.

from celery.utils.log import get_task_logger

logger = get_task_logger(__name__)
logger.info('foo')
VirRaa ★★★ ()
Ответ на: комментарий от VirRaa

Проблема не в том, что он не выводит, а в том что после client.start() исполнение до client.stop() уже не доходит

crarkie ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.