что происходит с кроной, если она не завершена и следующая итерация

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

У меня есть cron, который доставляет 125 электронных писем каждые 2 минуты, и я хотел знать, происходит ли что-то, и крон не завершен к моменту следующей итерации.

отправка в среднем 125 писем каждые 2 минуты очень важна, и я бы предпочел решение, которое обеспечит очистку журнала невыполненных работ при любой возможности.

Любой совет высоко ценится.

0

Решение

Cron запустит ваш процесс в указанный промежуток времени, независимо от того, завершил ли он / завершил / провалил предыдущее выполнение. Вы должны написать некоторую логику в своем коде, чтобы проверить, запущен ли его экземпляр или нет. В сценарии оболочки напишите приведенный ниже код, чтобы проверить, работает ли экземпляр «process.sh» или нет.

    for pid in $(pidof -x process.sh); do
if [ $pid != $$ ]; then
echo "[$(date)] : process.sh : Process is already running with PID $pid"//do whatever logic u want to do here
fi
done
0

Другие решения

Cron запускает указанный процесс, но ему все равно, что с ним происходит. Другой поток запустится, если таймер так скажет.

Список целей должен исходить из базы данных. Когда пришло время отправить сообщение, убедитесь, что оно не помечено как отправленное в БД, отметьте его и отправьте. Тогда не имеет значения, сколько параллельных потоков запущено, они не будут отправлять повторяющиеся сообщения.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector