Как запустить и остановить работу сельдерея и рабочих в Django? - PullRequest
0 голосов
/ 28 апреля 2020

Я получаю некоторые данные из API каждые 30 секунд и периодически вставляю их в mongoDB. следовательно, я использовал сельдерей, чтобы обработать его в фоновом режиме. celery.py следующим образом:

@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
    from example.tasks import API
    sender.add_periodic_task(30, API.s(), name='Api')

У меня задание tasks.py, как указано ниже:

@shared_task
def API():
    data=request.get(url).json()
    db.collectionName.insert_many(data)

Затем я использовал две команды для периодического запуска задачи в фоновом режиме:

celery -A DjangoCelery1 beat -l info
celery -A DjangoCelery1 worker -l info

Все в порядке, данные поступают из API и сохраняются в MongoDB. Теперь я хочу иметь возможность запускать и останавливать все запущенные задачи, нажав кнопку на веб-странице.

Что мне для этого нужно сделать?

1 Ответ

0 голосов
/ 29 апреля 2020

Я нашел свой ответ на этой странице: https://realpython.com/asynchronous-tasks-with-django-and-celery/#reader -комментариев

...