Подтвердить что ты не робот

Как я могу запустить периодическую задачу сельдерея из оболочки вручную?

Я использую сельдерей и джанго-сельдерей. Я определил периодическую задачу, которую я бы хотел проверить. Можно ли запустить периодическую задачу из оболочки вручную, чтобы я просмотрел вывод консоли?

4b9b3361

Ответ 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()

Я отредактировал ответ, поэтому вы не используете устаревшую команду.