如何在Cakephp中运行控制台程序7天后


How to run a Console programe in Cakephp after 7 days?

我有一个控制台程序,它只在当前日期为周日时运行,并为该程序设置下周日的目标日期(完成日期)。现在我想制作一个每周运行一次的程序,并将该程序的目标日期设置为7天后。例如,我的程序在周一运行,目标日期应该是下周一

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

我的第一个程序有这个逻辑。我在CakePhp控制台(Shell)中使用这个程序。第二个有帮助吗?

感谢

使用at命令。它是cron鲜为人知的表亲。它允许您在指定的日期和时间执行一次命令,可以是几年后。

根据你的描述,我认为你想在任何时候执行一个脚本,然后在7天后再次执行。这意味着您的PHP脚本将不得不安排自己再次运行。at可能需要一个绝对时间或增量:

at -f /bin/ls now +7 days

将尝试在7天后输出一个目录列表(可能会以/dev/null结束,但那是另一回事)。您应该将/bin/ls替换为PHP脚本的完整路径,并从系统()调用中执行at命令(它不是PHP本身的一部分)。这有点复杂,但可以保证脚本会被执行,即使在重新启动后也是如此。当然,脚本会重新安排自己,除非你采取对策。。。

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