Как предотвратить запуск нескольких экземпляров команды в django?

У нас есть специальная команда в приложении django, которая выполняет синхронизацию данных с внешним сервисом.

Команда запускается ежечасно.

Обычно команда завершается в течение получаса или меньше, но недавно мы столкнулись с ситуацией, когда процесс занял несколько часов. В то же время команда запускалась несколько раз в фоновом режиме, вызывая несогласованный доступ к моделям (поскольку наш код не был разработан для этой ситуации).

Можно ли предотвратить запуск команды django, если она уже запущена?

Один из способов решения этой проблемы - использовать файл в качестве мьютекса для команды.

Но это не кажется мне очень элегантным, так как это может привести к дополнительным проблемам в случае прерывания команды и неправильной очистки файла.

Как лучше всего подойти к этой проблеме?

0 ответов

Другие вопросы по тегам