discuz 插件开发 添加计划任务


一开始想在插件开发中添加计划任务,定期执行删除数据库中一些冗余数据

现有的计划任务数据被保存在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提供了第三方扩展类 

===========================================================================================================================

计划任务模块开发

  • 本功能为 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 范例插件



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值