主要功能:
让系统在指定的时间执行任务(脚本)
比如:在每天的凌晨一点执行发送邮件的任务
配置方式:
后台插件配置界面 [如下图]
右侧操作按钮分别是: 执行一次计划任务,编辑,删除
1.添加计划任务
说明:
任务名:给要执行的计划起一个贴切的名称
执行文件名:在指定时间执行的脚本
分钟:即每小时的第几分钟执行,全选则是每分钟执行一次
小时: * 表示每个小时执行, 1,2,3,....,24表示在特定的时间点执行
星期: * 表示每星期执行, 1,2,3,5,6,7 表示在特定的星期几执行
日: * 表示每天执行, 1,2,3,....,30,31 表示在每月的几号执行
示例 分钟 [0,2,5,10] 小时 [*] 星期 [*] 日 [*]
表示每小时的第0,2,5,10分钟执行
2.运行计划任务页面
注意:要在本地执行计划任务,这个页面需要一直打开,不能退出后台,或者关闭浏览器
3.云端执行
开启云端执行则不用打开计划任务执行页面 , 云端会定时执行计划任务
启用前需要先进行通讯检测, 检测时会同步提交信息
核心文件说明
Scheduletasks
├─ actions
│ └─ dotasks.php 服务器执行计划任务访问的文件
├─ classes
│ └─ taskHelp.php 解析定时任务
├─ controller
│ ├─ index.php 后台配置控制器
│ └─ taskpage.php 与云端通讯
├─ install
│ ├─ config 插件配置
│ └─ install.sql 安装要执行的SQL
├─ taskcatalog
│ ├─ tasks 定时任务执行的文件,必须放在此目录下
│ ├─ doAllTask.php 任务实际执行页面,由actions/dotasks.php调用
├─ template
│ └─ index
│ └─ index.htm 后台模板
├─ uninstall
│ └─ Uninstall.sql 卸载要执行的SQL
└─ menu.php 插件菜单
数据模型:
/x/model/schedule_tasks.php
/x/model/user_task_page.php
数据表:
schedule_tasks:自动任务表
字段名称 | 数据类型 | 默认值 | 注释 |
id | int(11) | NULL | |
taskname | varchar(100) | 空字符串 | 任务名 |
userid | int(11) | 0 | 执行者ID,0为所有人可执行 |
isopen | tinyint(1) | 1 | 是否需要打开页面 |
filename | varchar(100) | 空字符串 | 需要执行的PHP页面 |
lastdo | int(11) | 0 | 最后执行时间 |
doweek | char(1) | 0 | 每周星期几执行 |
doday | char(1) | 0 | 每月几号执行 |
dohour | char(1) | 0 | 每日几点执行 |
dominute | varchar(255) | 0 | 每小时几分钟执行 |
user_task_page:计划任务页面状态表
字段名称 | 数据类型 | 默认值 | 注释 |
id | int(11) | NULL | |
url | varchar(255) | 空字符串 | 任务名 |
status | tinyint(1) | 0 | 状态 |
memberid | int(11) | 0 | 会员ID |