2014-11-03 69 views
0

我有一个控制台程序,只在当前日期为星期天时运行,并在下一个星期日为该程序设置目标日期(完成日期)。现在我想制作一个程序在一周内运行一次,并为该程序设置目标日期例如我在周一的节目中运行,那么如果在周二运行,那么目标日期应该是下周一,那么目标日期应该是下周二,以此类推。如何在7天后在Cakephp中运行控制台程序?

$sunday = Date("D"); 
     if($sunday == 'Sun') { 
      remaining function 
     } 

我有这样的逻辑,我的第一个programe.I我使用这个PROGRAME在CakePHP控制台(壳牌)。任何帮助,第二个?

感谢

+0

你的意思是你想要在cron作业或其他东西中执行? – Ohgodwhy 2014-11-03 04:07:29

+0

我想通过命令行运行它 – 2014-11-03 04:17:27

+0

可能的重复[如何设置cronjobs在蛋糕php?](http://stackoverflow.com/questions/13949539/how-to-setup-cronjobs-in-cake-php)你的情况* * */7 * * – Abhishek 2014-11-03 04:20:20

回答

1

使用at命令。这是cron的小表弟。它允许您在指定的日期和时间执行一次命令,这可能是几年后的事情。

从您的描述我收集你想要在任何时候执行脚本,然后在7天后再次执行它。这意味着您的PHP脚本将不得不安排自己再次运行。 at可以采取绝对时间或增量:

at -f /bin/ls now +7 days 

将尝试输出目录,从现在上市的7天(这很可能会的/ dev/null的结束,但这是另一回事)。你应该用你的PHP脚本的完整路径替换/ bin/ls,然后从system()调用执行at命令(它不是PHP本身的一部分)。这有点复杂,但是可以保证脚本将被执行,即使在重新启动后也是如此。当然,脚本会重新安排自己,除非你采取反制措施......

当脚本在7天内运行时,其输出将不可见,因此请确保您重定向输出或将其写入一个日志。