Python/Django Предотвращение двойного запуска сценария

У меня есть большой скрипт, который получает много данных через API (Magento Invoices). Этот скрипт запускается cron каждые 20 минут. Но иногда нам нужно обновить его вручную, чтобы получить последние выставленные счета. Для этого у меня есть специальная страница

Я хотел бы предотвратить ручной запуск скрипта, проверяя, запущен ли он уже, потому что и API, и скрипт занимают много ресурсов и времени.

Я попытался добавить модель "процесса" с помощью is_active = True/False, которая будет проверяться и избегать повторного запуска, если сценарий уже активен. В начале сценария я переключаю состояние процесса на TRUE и устанавливаю его на FALSE, когда сценарий завершается. Но кажется, что второй экземпляр скрипта ждет завершения первого перед запуском. В конце оба сценария выполняются, потому что process.is_active always = False

Я также пробовал использовать переменную request.session, но та же проблема.

Потратил много времени на это, но не нашел способа достичь своей цели. Кто-нибудь уже сталкивался с подобным случаем?

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