Celery + Django on Windows: отладка асинхронных задач - PullRequest
1 голос
/ 22 января 2020

С Django 1.8 Я использовал django -celery для запуска асинхронных задач и смог отладить их в моей IDE (PyCharm или Eclipse + PyDev), просто запустив "python celery worker" в режиме отладки.

django -celery не поддерживает Django 2.2, поэтому мне нужно запустить чистый celery.exe. Документы Celery говорят, что мне нужно добавить «pdb» в мой код и запустить отладку через консоль.

Как я могу отлаживать эти задачи, как я делал раньше, динамически добавляя точки останова из моей IDE?

Ответы [ 2 ]

2 голосов
/ 22 января 2020

Вы можете использовать настройку CELERY_ALWAYS_EAGER = True в вашей среде разработки. Если это правда, все задачи будут выполняться локально, не отправляя его в очередь.

0 голосов
/ 22 января 2020

Вы можете использовать celery.contrib.rdb , расширение pdb.

from celery.contrib import rdb
from celery.task import task

@task
def add(x,y):
    result=× + y
    rdb.set_trace()  #set breakpoint
    return x+y

Откройте следующий терминал и введите

telnet localhost 6900

Теперь вы находитесь в режим отладки.

...