Ich versuche, eine periodische Aufgabe innerhalb einer Django-App zu erstellen.Warum funktioniert die periodische Aufgabe von Sellerie nicht?
Ich habe das meinem settings.py
:
from datetime import timedelta
CELERYBEAT_SCHEDULE = {
'get_checkins': {
'task': 'api.tasks.get_checkins',
'schedule': timedelta(seconds=1)
}
}
Ich bin nur mit Sellerie Sie beginnen und habe nicht herausgefunden, welche Broker ich verwenden möchte, so fügte ich auch dies nur den Makler umgehen einstweilen:
if DEBUG:
CELERY_ALWAYS_EAGER = True
ich habe auch eine celery.py
Datei in meinem Projektordner:
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'testproject.settings')
app = Celery('testproject')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
Inside my app namens api
, ich machte eine tasks.py
Datei:
from celery import shared_task
@shared_task
def get_checkins():
print('hello from get checkins')
ich den Arbeiter laufen und schlagen mit celery -A testproject worker --beat -l info
Es startet gut und ich kann die Aufgabe registriert unter [tasks]
sehen , aber ich sehe keine Jobs, die protokolliert werden. Sollte einer pro Sekunde sein. Kann jemand sagen, warum das nicht ausgeführt wird?
Haben Sie versucht, nur ' 'Zeitplan': 1.0'? –
Das funktioniert auch, aber hat das Problem bisher nicht behoben. – Rob