Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Естественно, для нескольких экземпляров воркеров нельзя встраивать beat, иначе копии тасок станут исполняться на каждой ноде.
celery-redbeat решает проблему. Просто запускаем все celery с -B и не беспокоимся.
запустить одновременно несколько сессий бэкапа БД
Ну подобные таски в лок оборачивать положено, независимо ни от чего, например с помощью python-redis-lock
celery-redbeat решает проблему
python-redis-lock может ставить лок с TTL и обновлять его, пока процесс работает. Умер/подвис процесс — лок устарел.
with redis_lock.Lock('my-lock', expire=60, auto_renewal=True):
# Do work....Смешно было, когда проект с celery 3.x решили под Python 3.7 запустить. В одной из не самых свежих либ была строка вида import foo.async.bar— получаем SyntaxError :)
Celery taskcls: новый декоратор, новые возможности