自动计划任务

ecshop

16-1-13 10:59:39

首先 模板里 要有  {insert name='query_info'} 标签

insert_query_info 主要是 脚本执行时间  占用内存  和触发计划任务 

code    '<img src="api/cron.php?t=' . gmtime() . '" alt="" style="width:0px;height:0px;" />'


我们来到 api/cron.php?t=时间


check_method 检测任务是否开启 和时间比对 判断来路 是否要验证计划任务 等。。。。

get_cron_info  获取已经安装的计划任务  条件是  crons表  已经开启 下次执行时间到了

循环载入 获得配置参数 执行的任务脚本

 'includes/modules/cron/xxx.php'   文件


执行后 更新下次执行时间  和 状态  


xxx.php

if (!defined('IN_ECS'))
{
    die('Hacking attempt');
}
$cron_lang = ROOT_PATH . 'languages/' .$GLOBALS['_CFG']['lang']. '/cron/xxx.php';  //语言文件
if (file_exists($cron_lang))
{
    global $_LANG;

    include_once($cron_lang);
}

/* 模块的基本信息 */
if (isset($set_modules) && $set_modules == TRUE)
{
    $i = isset($modules) ? count($modules) : 0;

    /* 代码 */
    $modules[$i]['code']    = basename(__FILE__, '.php');

    /* 描述对应的语言项 */
    $modules[$i]['desc']    = 'xxx_desc';

    /* 作者 */
    $modules[$i]['author']  = 'ms';

    /* 网址 */
    $modules[$i]['website'] = 'http://www.15780.cn';

    /* 版本号 */
    $modules[$i]['version'] = '1.0.0';

    /* 配置信息 */
    $modules[$i]['config']  = array(
        array('name' => 'xxx_count', 'type' => 'select', 'value' => '5'),
    );

    return;
}

//代码
file_put_contents(ROOT_PATH.'123.txt','--^_^-');





crons  计划任务插件安装配置信息

字段 类型 Null/默认 注释
cron_id tinyint(3)  自增ID号
cron_code varchar(20) 该插件文件在相应路径下的不包括''.php''部分的文件名,运行该插件将通过该字段的值寻找将运行的文件
cron_name varchar(120) 计划任务的名称
cron_desc text 计划人物的描述
cron_order tinyint(3)  应该是用了设置计划任务执行的顺序的,即当同时触发2个任务时先执行哪一个,如果一样应该是id在前的先执行暂不确定
cron_config text 对每次处理的数据的数量的值,类型,名称序列化;比如删几天的日志,每次执行几个商品或文章的处理
thistime int(10) 该计划任务上次被执行的时间
nextime int(10) 该计划任务下次被执行的时间
day tinyint(2) 如果该字段有值,则计划任务将在每月的这一天执行该计划人物
week varchar(1) 如果该字段有值,则计划任务将在每周的这一天执行该计划人物
hour varchar(2) 如果该字段有值,则该计划任务将在每天的这个小时段执行该计划任务
minute varchar(255) 如果该字段有值,则该计划任务将在每小时的这个分钟段执行该计划任务,该字段的值可以多个,用空格间隔
enable tinyint(1) 该计划任务是否开启;0,关闭;1,开启
run_once tinyint(1) 执行后是否关闭,这个关闭的意思还得再研究下
allow_ip varchar(100) 允许运行该计划人物的服务器ip
alow_files varchar(255) 运行触发该计划人物的文件列表可多个值,为空代表所有许可的

  

语言文件的配置

language\zh-cn\cron\xxx.php

global $_LANG;

$_LANG['xxx']            = '标题';
$_LANG['xxx_desc']       = '内容介绍';
$_LANG['xxx_count']   = '某个选项';
$_LANG['xxx_count_range']['7'] = '7';         //选项介绍和值
$_LANG['xxx_count_range']['10'] = '10';
$_LANG['xxx_count_range']['15'] = '15';