Как запустить периодическую задачу в Django без использования celery?

Мне нужно запустить периодическую задачу в Django для обновления некоторых метрик Prometheus, затем я понял, что не могу использовать celery, потому что celery запускается в других рабочих, в то время как метрики Prometheus являются объектами в памяти.

Я совсем новичок в Django. Если я буду делать это в Go, то начну поток (go-рутину), но я не уверен, стоит ли начинать поток в Django, так как Django для меня как блок-бокс. Если да, то где начинать поток? В settings.py или в другом месте?

Простым способом в вашей ситуации было бы написание функции для обработки метрик для Prometheus и использование системного cron для обработки периодичности...

Пожалуйста, проверьте это:

https://apscheduler.readthedocs.io/en/3.x/

Я использовал APScheduler в своих предыдущих проектах компании, и он отлично работает.

Вы можете создать новый процесс в python с планировщиком и выполнить свою задачу в нем, а затем запустить его как демон в фоновом режиме. https://schedule.readthedocs.io/en/stable/index.html

С помощью cron можно периодически выполнять одно задание.

Вы можете использовать другие библиотеки, например huey https://huey.readthedocs.io/en/latest/django.html

Вернуться на верх