#php #cron
#php #cron
Вопрос:
С 16:00 по восточному времени в пятницу до 10:00 субботы по восточному времени электронные письма с использованием cronjob отправляться не должны. Как я могу настроить свой cronjob для этого?
Комментарии:
1. Каков ваш текущий график cronjob?
2. Почему бы не позволить вызываемому скрипту справляться с подобными вещами?
3. @Pekka — Я просто подумал о том же самом…
4. Я устанавливаю файл cronjob, который выполняется весь день каждые 1 час. Клиент хочет останавливать отправку почты только в определенные дни.
5. @lifeline тем не менее — почему бы не обработать это в скрипте? Я не думаю, что синтаксис crontab достаточно гибкий для этого.
Ответ №1:
Если у вас есть доступ к PHP-файлу, вы могли бы добавить это в начало:
Редактировать
Обратите внимание, я использовал неправильный 24-часовой символ часов, он должен быть H
. Смотрите этот codepad.
<?php
$wH = date('wH');
if (($wH > 516 amp;amp; $wH < 525) || ($wH > 600 amp;amp; $wH < 622)) {
exit('Script exited.');
}
echo 'Script ran.';
?>
Это просто создает числовое представление дня недели с указанием часа и проверяет, чтобы убедиться, что время не находится между этими значениями, завершая работу скрипта, если это так.
Комментарии:
1. @lifeline — Смотрите мою правку, у меня был неправильный символ 24-часовых часов.
2. Да, это работает. Сегодня суббота. Он перестал выполняться. Пожалуйста, подтвердите, что это будет остановлено до 10 вечера субботы?