Я установка kombu/celery, которую я недавно установил. Задачи выполняются отлично, но они работают почти непрерывно, а не уважают атрибут run_every. Возможно, более странно, это поведение появляется только в производстве и прекрасно работает на местном уровне.Сельдерей/Kombu игнорируя run_every
Мои tasks.py
выглядит следующим образом:
from celery.task import PeriodicTask
from datetime import timedelta, datetime
class FirstTask(PeriodicTask):
run_every = timedelta(seconds = 30)
# Do Stuff
Мои settings.py
включает
BROKER_URL = "django://"
import djcelery
djcelery.setup_loader()
плюс 'djcelery'
и 'kombu.transport.django'
в INSTALLED_APPS
.
И в производстве я запускаю python manage.py celeryd -v 2 -B -s celery -E -l INFO
, чтобы начать выполнение моих задач. Я следил за Chase Seibert's tutorial, если это очищает что-то еще.
Ха-ха: «Очищено 5625 сообщений из 1 известной очереди задач». Вероятно, это имеет какое-то отношение к ней. Как они накапливаются? – Chris
Вы пробовали его с разными интервалами или другим кодом раньше? Или задача слишком долго выполнялась? Кроме того, если у вас есть много других задач сельдерея, они могут задержать выполнение вашей периодической задачи (не принимайте интервал 'run_every' как должное!) –