<?php /* * @否子戈 * 本文件用来演示如何添加并定时一个任务 */ // 先引入和声明Crone类 //define('CRON_URL','http://'.$_SERVER['SERVER_NAME'].'/php-cron/cron/cron.php'); // 这个定义用来告诉CRON定时文件的访问路径,如果你是将php-cron放在根目录下的话,其实是可以不用声明 require dirname(__FILE__) . '/../cron/Cron.FILE.Class.php'; use PHPCron\FILE\Cron as CronFILE; $Cron = new CronFILE(); // $name是这个定时任务的名称,一但添加这个任务,就会在../schedules目录中生成一个$name.php文件用来记录这个任务的执行时间、要访问的url $name = 'mycron'; // 先增加一个定时任务 $Cron->update($name, microtime(true) + 30, 60, 'http://' . $_SERVER['SERVER_NAME'] . '/php-cron/demo/test.php'); /* * demo目录下的test.php是一个用来测试定时任务是否执行了的文件,每一次定时任务执行时,都会在test.log文件末尾添加执行任务的信息,你可以通过查看test.log来看执行的情况 * 要关闭该定时任务,只需要删除../schedules目录中对应的文件即可,没有文件,下一次定时任务时就会暂停 */ // 然后立即定时任务 //$Cron->run($name); // 等待1秒,让文件写入后再执行 sleep(1); // 激活定时任务 $Cron->set($name); // 删除这个任务,需将上面两个动作注释掉 //$Cron->delete($name);
<?php require dirname(__FILE__) . '/Cron.FILE.Class.php'; ignore_user_abort(true); set_time_limit(0); use PHPCron\FILE\Cron as CronFILE; $Cron = new CronFILE(); // 如果不存在cron参数,则对所有任务进行检查,如果发现某些任务没有执行,那么现在执行它 if (!isset($_GET['cron'])) { $gmt_time = microtime(true); $schedules = $Cron->get(); if (!empty($schedules)) { foreach ($schedules as $shd) { // 如果当前时间比该任务的下一次执行时间还要大,说明定时任务失败,通过该被动执行来完成定时任务 if ($gmt_time > $shd['next_run_time']) { $Cron->run($shd['name']); break; } } } exit; } // 如果存在cron参数,就以它作为任务名称,去激活该任务 $name = $_GET['cron']; $loop = 0; // 如果多次访问这个任务,这个任务是否会被激活多次呢 $schedule = $Cron->get($name); if (isset($schedule['status']) && $schedule['status'] == 1) { echo 'schedule is running...'; exit; }