Я новичок в сельдерее, так что потерпите меня. Моя цель - зарегистрировать задачу по ударам сельдерея из представления Django, которая будет выполняться вечно один раз в секунду, поэтому у меня есть такой код:
структура моего проекта:
- proj
-proj
settings.py
celery.py
-app1
tasks.py
views.py
settings.py
CELERY_BROKER_URL = 'redis://localhost:6379'
BROKER_TRANSPORT = 'redis'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = 'UTC'
CELERYBEAT_SCHEDULE = {}
celery.py
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
from android_blend.settings import PROJECT_APPS
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')
app = Celery('android_blend')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(PROJECT_APPS)
В самом важном, в моем views.py я делаю что-то вроде этого:
from proj.celery import app
def test_view(request):
app.conf.beat_schedule = {
'add-every-second': {
'task': 'tasks.add',
'schedule': 1.0,
'args': (...)
},
}
...
I пусть мой рабочий и побитие работают, но я ничего не вижу. Я упустил что-то интересное? Сельдерей do c кажется очень причудливым и схематичным ...
UPD: Чтобы быть более конкретным c, я хочу придумать функцию, когда пользователь отправляет сообщение своему другу не сразу, а во времени, когда-то в будущем. Какие инструменты для этого?