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