php定时执行任务的方法,设定某个时间,定时执行某个方法

php thinkphp php 1552      收藏
本文讲述使用php定时执行任务的方法,比如我们需要做抽奖活动,设置每天某个时间抽取一次,但是又不想人工抽奖,就可以定时执行一个任务,到了某个时间点,php自动执行这个方法。

本文讲述使用php定时执行任务的方法,比如我们需要做抽奖活动,设置每天某个时间抽取一次,但是又不想人工抽奖,就可以定时执行一个任务,到了某个时间点,php自动执行这个方法。

当然了,使用Linux的定时任务也是可以去完成的,这里只是讲解如何使用php来完成。

本文采用的案例知识一个简单的小demo,定时5秒钟向数据库中插入一条数据,限定条件是在2017年3月10日12点之前就一直执行,代码如下:

我们在浏览器按照地址,访问该文件即可启用此代码,关闭浏览器也会一直执行。

class IndexAction extends Action {

  public function index(){

    ignore_user_abort();//关闭浏览器后,继续执行php代码

    set_time_limit(0);//程序执行时间无限制

    $sleep_time = 5;//多长时间执行一次

    $model=M("type");

    while(time()<strtotime("20170310 12:00:00")){

    $msg=date("Y-m-d H:i:s");

    $data['createtime']=$msg;

    echo $msg;

    echo '<br />';

    $res=$model->add($data);

    file_put_contents("log.log",$msg,FILE_APPEND);//记录日志

    sleep($sleep_time);//等待时间,进行下一次操作。

 }

 exit();

}

案例执行中的数据库结果如图:

自学php博客