Привет! Чот или я под вечер туплю. Или одно из двух 😏 смотрите, у меня есть скрипт, который выполняется долго. У меня есть крон задача, которая запускается каждую минуту. При первом вызове скрипта перед работой я пишу в файловую систему файл, мол, воркер работает. Когда задача завершается, она киляет этот файл.
Перед записью этого файла у меня есть проверка на существование файла и его время, если оно менее N минут, то мы считаем, что воркер работает ещё.
Почему, когда я запускаю вызов скрипта раз, и через минуту второй раз, то второй скрипт продолжает выполнятся?
Если быть точнее, то поведение, вероятно следующее. Второй скрипт ждёт, пока выполнится первый, после этого запускается сам, и вероятно, делает ту же самую работу.
Как мне убить второй скрипт, если первый ещё выполняется? Что бы они не копились в процессах?
Беда в том, что не известно, сколько будет выполняется каждый запуск скрипта.
используй симфони компонент вроде lock называется, в комплекте еще трейт, он специально для консольных команд сделан, что бы не запускать скрипт который уже работает