V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
P9
V2EX  ›  问与答

discuz 中得插件 怎么设置 cron

  •  
  •   P9 · 2014-04-22 16:50:52 +08:00 · 2650 次点击
    这是一个创建于 3887 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近刚刚接触php, 和discuz,想请教下,怎么设置cron和任务。
    我想写一个插件可以在某个时间段执行任务
    7 条回复    1970-01-01 08:00:00 +08:00
    shiniv
        1
    shiniv  
       2014-04-22 18:42:38 +08:00   ❤️ 1
    $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
        2
    shiniv  
       2014-04-22 18:48:08 +08:00
    补充下,这里'filename' => '插件名:计划任务文件名.php',
    中的”插件名“指的是插件的唯一id
    如果你的唯一id跟目录不一样,那就写你的目录
    P9
        3
    P9  
    OP
       2014-04-24 13:47:39 +08:00
    @shiniv 好的,已经搞定了。
    P9
        4
    P9  
    OP
       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
        5
    P9  
    OP
       2014-04-24 17:02:56 +08:00
    @P9 除了直接用 save_syscache; loadcahe 直接在函数中用。 总觉得这样不符合DZ的规则,也存在风险。
    shiniv
        6
    shiniv  
       2014-04-24 18:42:58 +08:00
    @P9 $_G['cache']['plugin'] 我记得是放插件变量的。
    开发文档没有提到不能用save_syscache,应该是可以用的
    P9
        7
    P9  
    OP
       2014-04-24 22:48:51 +08:00
    @shiniv 我现在是直接用了库的save_syscache函数,达到需求了。暂时先这样,谢了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1200 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:47 · PVG 01:47 · LAX 09:47 · JFK 12:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.