Я использую сельдерей и джанго-сельдерей. Я определил периодическую задачу, которую я бы хотел проверить. Можно ли запустить периодическую задачу из оболочки вручную, чтобы я просмотрел вывод консоли?
Как я могу запустить периодическую задачу сельдерея из оболочки вручную?
Ответ 1
Вы пробовали запустить эту задачу из оболочки Django? Вы можете использовать метод .apply
задачи, чтобы гарантировать, что он выполняется с нетерпением и локально.
Предполагая, что задача называется my_task
в приложении Django myapp
в подмодуле tasks
:
$ python manage.py shell
>>> from myapp.tasks import my_task
>>> eager_result = my_task.apply()
Экземпляр результата имеет тот же API, что и обычный тип AsyncResult
, за исключением того, что результат всегда оценивается с нетерпением и локально, а метод .apply()
блокируется до завершения задачи.
Ответ 2
Мне кажется, вам нужно открыть две оболочки: одну для выполнения задач из оболочки Python/Django и одну для запуска celery worker
(python manage.py celery worker
). И, как сказал предыдущий ответ, вы можете запускать задачи с помощью apply()
или apply_async()
Я отредактировал ответ, поэтому вы не используете устаревшую команду.