задание печати внутри задачи сельдерея не работает - PullRequest
0 голосов
/ 26 мая 2018

Мне нужно отладить задачу celery, чтобы увидеть, работает ли она должным образом, поэтому я поместил несколько print операторов в tasks.py.Во время выполнения проекта я заметил, что задача успешно выполняется, но ничего не печатается на консоли.Как я могу отладить задачу сельдерея.

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Для отладочного сельдерея:

from celery import task
from celery.contrib import rdb

@task()
def add(x, y):
    result = x + y
    rdb.set_trace()  # <- set break-point
    return result

После запуска вы увидите этот журнал:

[INFO/MainProcess] Received task:
    tasks.add[d7261c71-4962-47e5-b342-2448bedd20e8]
[WARNING/PoolWorker-1] Remote Debugger:6900:
    Please telnet 127.0.0.1 6900.  Type `exit` in session to continue.
[2011-01-18 14:25:44,119: WARNING/PoolWorker-1] Remote Debugger:6900:
    Waiting for client...

Вам необходимо telnet к порту, как показано ниже:

telnet localhost 6900

Теперь вы можете отлаживать свою задачу.подробнее в сельдерее .

0 голосов
/ 26 мая 2018

Когда Celery действительно выполняет свою работу, задачи обрабатываются различными процессами Python.В зависимости от того, как у вас настроены вещи, эти отдельные процессы могут не иметь доступа к вашей консоли.Вместо этого они будут записывать в файл журнала Celery (который может быть настроен различными способами).Найдите этот файл, и вы увидите результаты печати ваших заданий.

Все это предполагает, что вы действительно перезапустили работников Celery, как это было предложено в комментарии Гаурава Томера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...