一开始想在插件开发中添加计划任务,定期执行删除数据库中一些冗余数据
现有的计划任务数据被保存在pre_common_cron表中
于是想着在插件安装时,先网数据库表中写入任务,这样就可以达到想要的目的,另外执行任务的脚本必须在source\include\cron\目录下
//将计划任务移动到source\include\cron下]
error_reporting(E_ALL);
$origin = DISCUZ_ROOT."source\\plugin\\geetest\\util\\clear_geetest_pass.php";
$path = DISCUZ_ROOT."source\\include\\cron\\clear_geetest_pass.php";
//向common_cron表添加计划任务
$table1 = DB::table('common_cron');
$available = 1;
$type = "'user'";
$name = "'每日清空验证码额外数据'";
$filename = "'clear_geetest_pass.php'";
$lastrun = 1376410392;
$nextrun = 1376420400;
$week = -1;
$day = -1;
$hour = 3;
$minute = "'0'";
$sql = <<<EOF
insert into $table1
values(null, $available, $type, $name, $filename,
$lastrun, $nextrun, $week, $day, $hour, $minute)
EOF;
DB::query($sql
因为discuz提供了第三方扩展类
===========================================================================================================================
计划任务模块开发
- 本功能为 Discuz! X3.0 新增内容
- 计划任务模块用于拓展一个计划任务项目,本模块会在插件安装时自动添加到系统计划任务中,并在插件卸载时自动从中删除
脚本位置:source/plugin/插件目录/cron/cron_name.php
<?php //cronname:mycron 计划任务名称,可写脚本语言包中的项目 //week:1 设置星期几执行本任务,留空为不限制 //day:1 设置哪一日执行本任务,留空为不限制 //hour:1 设置哪一小时执行本任务,留空为不限制 //minute:0,30 设置哪些分钟执行本任务,至多可以设置 12 个分钟值,多个值之间用半角逗号 "," 隔开,留空为不限制 if(!defined('IN_DISCUZ')) { exit('Access Denied'); } //您的计划任务脚本内容 ?>
缓存更新模块开发
- 本功能为 Discuz! X3.0 新增内容
- 缓存更新模块用于在系统更新缓存时拓展一个缓存更新项目
脚本位置:source/plugin/插件目录/cache/cache_name.php
<?php if(!defined('IN_DISCUZ')) { exit('Access Denied'); } function build_cache_plugin_name() { //您的缓存更新脚本内容 } ?>友情提示: 下载学习 Discuz! X3 范例插件