Длинный опрос один раз в секунду с использованием Django и сельдерея - PullRequest
0 голосов
/ 25 мая 2020

Я новичок в сельдерее, так что потерпите меня. Моя цель - зарегистрировать задачу по ударам сельдерея из представления 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, я хочу придумать функцию, когда пользователь отправляет сообщение своему другу не сразу, а во времени, когда-то в будущем. Какие инструменты для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...