запустить PHP-скрипт с Cron, который планирует события - PullRequest
1 голос
/ 09 января 2012

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

Могу ли я в любом случае протестировать следующее, кроме как поставить его на сервер и ждать выбранные даты? Я запускаю локальный сервер Apache, если я изменяю дату этого числа на первый день месяца и запускаю это будет нормально?

Это все правильно? :

<?php
$RUN_everyday = `/path/to/php/everyday.php`;
$RUN_everymonday = `/path/to/php/everymonday.php`;
$RUN_firstmondayofmonth = `/path/to/php/firstmondayofmonth.php`;


date_default_timezone_set('Europe/London');
$weekday = date('D');
$dayOfMonth = date('d');
// runs the everyday php file
echo '$RUN_everyday';
if ($weekday == 'Mon')
{
//runs the every monday php file every monday of the week
echo '$RUN_everymonday';
if ($dayOfMonth <=6)
//runs the first monday of the month php file on the first monday of each month
echo '$RUN_mondayofmonth';
}
?>

Ответы [ 3 ]

2 голосов
/ 09 января 2012

Я бы проверил это, просто вручную установив эти переменные:

date_default_timezone_set('Europe/London');
//$weekday = date('D');
//$dayOfMonth = date('d');
$weekday = 4;      // <-----------
$dayOfMonth = 14;  // <-----------
// runs the everyday php file
echo '$RUN_everyday';

Измените его на любое значение, которое вы хотите проверить, и запустите его - посмотрите, что произойдет!

1 голос
/ 09 января 2012

Я бы не стал добавлять слой php для этого. Cron может самостоятельно справляться с такого рода расписаниями.

Это должно сделать это:

0 0 * * * php every_day_midnight.php
0 0 * * 1 php every_monday_midnight.php
0 0 0-6 * 1 php first_monday_midnight.php
1 голос
/ 09 января 2012

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

...