discuz 中得插件 怎么设置 cron

2014-04-22 16:50:52 +08:00
 P9
最近刚刚接触php, 和discuz,想请教下,怎么设置cron和任务。
我想写一个插件可以在某个时间段执行任务
2631 次点击
所在节点    问与答
7 条回复
shiniv
2014-04-22 18:42:38 +08:00
$data = array(
'available' => 1,
'type' => 'plugin',
'name' => 计划任务名称,
'filename' => '插件名:计划任务文件名.php',
'weekday' => -1,
'day' => -1,
'hour' => 2,
'minute' => 0,
);
$cronId = C::t('common_cron')->insert($data, true, false, false);
这个应该是2小时执行一次,放在install.php
计划任务文件就放在插件目录下的cron文件夹内
shiniv
2014-04-22 18:48:08 +08:00
补充下,这里'filename' => '插件名:计划任务文件名.php',
中的”插件名“指的是插件的唯一id
如果你的唯一id跟目录不一样,那就写你的目录
P9
2014-04-24 13:47:39 +08:00
@shiniv 好的,已经搞定了。
P9
2014-04-24 16:45:49 +08:00
@shiniv 顺便请教一个缓存问题。我的插件需要将每次执行的结果保存到缓存中,我看到可以在cache文件夹下写 build_plugin_cache_name()函数。 另外我也看到有以下函数可以使用 loadcahe, updatecache, build_plugin_cache(), savecache(), writetocaheh()(这个估计是写到文件的)。 但就是无法将数据写入到 _G['cache']['plugin']['cname']['post_queue']中。
P9
2014-04-24 17:02:56 +08:00
@P9 除了直接用 save_syscache; loadcahe 直接在函数中用。 总觉得这样不符合DZ的规则,也存在风险。
shiniv
2014-04-24 18:42:58 +08:00
@P9 $_G['cache']['plugin'] 我记得是放插件变量的。
开发文档没有提到不能用save_syscache,应该是可以用的
P9
2014-04-24 22:48:51 +08:00
@shiniv 我现在是直接用了库的save_syscache函数,达到需求了。暂时先这样,谢了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/109560

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX