设置cron job php

时间:2012-11-24 05:04:11

标签: php codeigniter cron

如何以编程方式设置cron作业,

我们为我们的项目安装了一个安装程序,在安装时我需要用PHP以编程方式设置一个cron作业。

请注意,该项目可以在LINUX / WINDOWS上运行,

我怎样才能实现这一目标?还是有比CRON JOB更好的选择。

我正在使用Codeigniter(我们总是欢迎基于原生php的解决方案,但如果通过CI则会非常有用)

cron工作包括

  1. 检查特定表并删除无效数据
  2. 从mailServer
  3. 向DB插入值
  4. 检查某些文件的可用性。
  5. 感谢。

3 个答案:

答案 0 :(得分:8)

这是一篇好文章,用于从PHP管理您的Cron作业

http://net.tutsplus.com/tutorials/php/managing-cron-jobs-with-php-2/

此示例包含如何从PHP编写Cron作业的完整说明,该作业可从具有完整源代码的界面进行管理。

答案 1 :(得分:2)

Cron是linux的作业调度程序。它不适用于Windows(除非你开始喜欢Cygwin和etecetera)。如果您必须在整个系统范围内支持它,跨越各种未知系统以及所有PHP系统(无法按原样安排工作),您可以使用以下三种解决方案中的任何一种:

来自地面控制的电话
(最好的资源,具体时间,最优雅的解决方案)

  1. 让自己的盒子运行cron并ssh'ing其他机器来运行命令
  2. 让自己的盒子运行cron并访问“secret url's”运行命令
  3. 有一项外部服务,例如SetCronJob致电“秘密网址”
  4. 随机职位选手
    (最容易实施,资源适中)

    如果您需要做一些不会直接影响用户在您网站上的行为方式而且时间不敏感(只需要完成)的事情,您可以诉诸于以统计概率运行。

    // this will run on average once every 100 page views
    if(rand(1, 100)==1) runJobQueue();
    

    最差情况
    (资源更难)

    如果您的工作必须经常完成,因为它会直接影响用户,并且必须满足一些时间表,您可以保存查询并使用上次运行时间戳更新数据库并继续检查以查看作业是否必须重新运行

    // if has passed 1 hour since last update... re-update it
    $result = mysql_query("SELECT `timestamp` FROM job_times WHERE whatever...")
    if(mysql_result($result, 2) >= ( now() - 3600)) {
        runJobQueue()
    

答案 2 :(得分:0)

cron job可用于linux,windows中的替代方案是schedule任务。 http://support.microsoft.com/kb/308569

相关问题