用cron运行一个php脚本来安排事件

时间:2012-01-08 22:02:28

标签: php date scheduler

我试图在本月的三个不同时间,每个星期一,每个星期一和本月的第一个星期一运行不同的脚本,我已经在这里的人们的帮助下整理了以下内容,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 个答案:

答案 0 :(得分:2)

我只需手动设置这些变量就可以测试它:

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 :(得分:1)

我建议使用几乎每个人都用于此类工作的工具:cron。

答案 2 :(得分:1)

我不会添加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