У нас есть пользовательская команда в приложении django, которая выполняет синхронизацию данных с внешней службой.
Команда запускается ежечасно.
Обычно команда завершается в течение получасаили меньше, но недавно мы столкнулись с ситуацией, когда процесс занял несколько часов.В то же время, команда запускалась несколько раз в фоновом режиме, вызывая несогласованный доступ к моделям (поскольку наш код не был разработан для этой ситуации).
Можно ли предотвратить запуск команды django, еслион уже запущен?
Один из способов решения этой проблемы - использовать файл в качестве мьютекса для команды.
Но мне это не кажется изящным, так как это можетвызвать дополнительные проблемы в случае, если команда прерывается и файл может быть не очищен должным образом.
Как лучше всего решить эту проблему?Есть ли способ сделать это с помощью pythonic / django-ish?