2014-05-19 17 views
8

Czy istnieje sposób dodawania, modyfikowania, usuwania selera.Schedules w czasie wykonywania. Potrzebuję czegoś, co okresowo odczytuje tabelę db, aby poznać listę harmonogramów.Dodawanie, modyfikowanie, usuwanie selera. Schedule w czasie wykonywania

Dokument mówi, że można użyć djcelery.schedulers.DatabaseScheduler, aby osiągnąć to, co chcę, ale nie wiem, jak to zrobić.

czytam How to dynamically add/remove periodic tasks to Celery (celerybeat), nadal nie jasne

Dzięki za pomoc

+0

Anything zmieniło się to od 2014 roku? – Tanay

+0

Nie próbowałem po tym –

Odpowiedz

11

Po ustawieniu w ustawieniach aplikacji:

CELERYBEAT_SCHEDULER='djcelery.schedulers.DatabaseScheduler' 

celery beat Proces kontroli django modelu PeriodicTask zobaczyć co zadanie powinno być wykonywane .

Możesz dodać/zmienić/usunąć te zadania, modyfikując go przy użyciu modelu django:

from djcelery.models import PeriodicTask, CrontabSchedule 

every_hours_crontab = CrontabSchedule(minute=0) 
every_hours_crontab.save() 

periodic_task = PeriodicTask(
    name='Call my task every hour', 
    task='myproject.tasks.mytask', 
    crontab=every_hours_crontab, 
    args=json.dump([arg1, arg2]), 
    kwargs=json.dump({'foo': 'bar'}) 
) 
periodic_task.save() 

Można również przetestować różne konfiguracje PeriodicTask pomocą panelu django admin:
http://localhost:8000/admin/djcelery/crontabschedule/add/
http://localhost:8000/admin/djcelery/periodictask/

+1

Co zrobić, jeśli nie używam django? – Veehmot

+0

Następnie musisz wdrożyć taką funkcjonalność samodzielnie lub korzystając z dowolnej innej struktury, którą posiadasz. – daniula

Powiązane problemy