Example #1
0
<?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);
Example #2
0
<?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;
}