我们可以通过PHP脚本配置cron作业的时间间隔吗?

时间:2011-08-08 11:26:38

标签: php cron

我们可以通过PHP脚本配置cron作业的时间间隔,因此不应手动设置时间间隔,而是通过PHP脚本设置时间间隔,无论是从数据库获取时间间隔还是修复(但在PHP代码中)。
提前致谢

5 个答案:

答案 0 :(得分:3)

我认为让你的应用程序控制事件的频率而不是cronjob要好得多。让cronjob每分钟运行一次你的应用程序的某个动作。然后,该操作将检查名为cronjobs的数据库表,并通过频率编号或时间戳运行标记为要运行的作业。

如果你这样做,你可以从任何地方以编程方式添加新的工作,例如:通过cronjob界面。 解决方案更易于维护,测试和记录

答案 1 :(得分:2)

有两种方法。或者,在每次更改所需值时重新创建crontab,或者让cron作业定期触发,例如每分钟,并从脚本中测试起始条件。

答案 2 :(得分:0)

如果有足够的服务器权限,您应该可以使用system()使用PHP脚本中的系统级调用来执行此操作。

答案 3 :(得分:0)

最好这样做,可能是编写一个能够创建crontab文件的PHP脚本(并运行具有足够权限的脚本来执行此操作)。

这个site提供了一个非常好的教程。

但是,依赖cron会使您的代码依赖于支持cron的平台。因此,另一种解决方案是在PHP本身中实现定时执行逻辑(即循环代码,并自己检查时间)。

您可以通过创建一个可以提供脚本的Scheduler接口来组合上面的两个解决方案,并确保它在适当的时间执行。这样你可以在linux上使用cron实现它,但在Windows上以另一种方式实现它:

interface Scheduler {
  function schedule($script);
}
class CronScheduler {
  function schedule($script) {
    append_cronjob($script);
  }
}

虽然,我可能在这里做得太过分了。

答案 4 :(得分:0)

如果您想这样做,我建议您改用Message Queue Beanstalkd。它可以做延迟put程序化,并且非常快。我建议你使用pheanstalk来讨论Beanstalkd。