最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Thinkphp定时执行任务的例子
时间:2016-03-21 编辑:简简单单 来源:一聚教程网
其中定时任务需要提醒的是,现在目前是被动执行(也就是说当放完产生访问的时候,程序回比对是否达到间隔时间来决定是否执行任务),如果网站没有任何访问和请求则不执行。如果大家知道了如何主动执行请告知我一下。
大家使用时请注意一下几个配置
Common/Conf中包含所有配置
其中多语言在config.php
定时任务crons.php
两个功能共需配置为tags.php
里面都有相应注释查看即可
同时以上所有文件夹以及文件名称为系统内置可识别不可随意更改
定时任务执行的文件存放在
C:\xampp\htdocs\ThinkPHPTest\ThinkPHP\Library\Cron\recommend.php
namespace Behavior;
class CronRunBehavior {
public function run(&$params) {
if (C('CRON_CONFIG_ON')) {
$this->checkTime();
}
}
private function checkTime() {
if (F('CRON_CONFIG')) {
$crons = F('CRON_CONFIG');
} else if (C('CRON_CONFIG')) {
$crons = C('CRON_CONFIG');
}
if (!empty($crons) && is_array($crons)) {
$update = false;
$log = array();
foreach ($crons as $key => $cron) {
if (empty($cron[2]) || $_SERVER['REQUEST_TIME'] > $cron[2]) {
G('cronStart');
R($cron[0]);
G('cronEnd');
$_useTime = G('cronStart', 'cronEnd', 6);
$cron[2] = $_SERVER['REQUEST_TIME'] + $cron[1];
$crons[$key] = $cron;
$log[] = 'Cron:' . $key . ' Runat ' . date('Y-m-d H:i:s') . ' Use ' . $_useTime . ' s ' . "\r\n";
$update = true;
}
}
if ($update) {
\Think\Log::write(implode('', $log));
F('CRON_CONFIG', $crons);
}
}
}
}
使用方法:
1.把CronRunBehavior.class.php行为类放置在目录:ThinkPHP\Library\Behavior
2.在Application\Common\Conf目录下创建tags.php文件
return array(
'app_begin' => array('Behavior\CronRunBehavior'),
);
3.Application\Common\Conf\config.php配置如下:
/* 自动运行配置 */
'CRON_CONFIG_ON' => true, // 是否开启自动运行
'CRON_CONFIG' => array(
'测试定时任务' => array('Home/Index/crons', '60', ''), //路径(格式同R)、间隔秒(0为一直运行)、指定一个开始时间
),
4.在Application\Home\Controller\IndexController.class.php里增加如下操作,以便测试
public function index() {
$contents = file_get_contents("sucaihuo.txt");
$this->assign("contents", $contents);
$this->display();
}
public function crons() {
file_put_contents("sucaihuo.txt", date("Y-m-d H:i:s") . "\r\n
", FILE_APPEND);
// echo '执行任务定时任务!';
}
提示:
1.每隔60秒访问任何url,再看看根目录sucaihuo.txt有什么变化 2.缓存时间存放在Runtime下,更改时间后,记得删除缓存
相关文章
- PHP导出数据超时的优化建议解读 10-31
- PHP之mysql位运算解析 10-31
- Laravel实现登录跳转功能解析 10-31
- php双向队列解读 10-31
- Laravel异常上下文解决教程 10-24
- php数组查询元素位置方法介绍 10-24