DShcherbakov
@DShcherbakov

Как определить завершилась ли выполнение консольной команды?

Есть проект на Yii 2 и несколько консольных команд повешенных на крон. Какая-то запускается раз в минуту, какая-то раз в полчаса. Как узнать выполнилась та или иная команда и если нет то не запускать ее?
  • Вопрос задан
  • 174 просмотра
Решения вопроса 1
Самый простой способ - использование файлов-блокировок. При запуске комманда создаёт некий пустой файл с определённым именем, а при окончании работы удаляет его. Соответсвенно, при старте она проверяет существует ли уже такой файл и если существует, то это с высокой степенью вероятности означает, что ещё работает предыдущий запуск. Вместо файла модно использовать базу данных.
Способ посложнее - запускать задачи через специальный менеджер задач, который будет следить за их очередностью, контроллировать не завис ли процес и пр.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vksee
Существует готовое решение. Использовать можно файловые блокировки, базы данных и т.п.
https://www.yiiframework.com/doc/api/2.0/yii-mutex...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы