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