计划任务是一项使系统在规定时间自动执行某些特定任务的功能,合理设置执行时间,能有效地为服务器减轻负担。触发任务除系统指定的时间外,用户行为也可触发。

    1.创建计划任务:在 目录下,新建计划任务文件

    样例:

    2.在计划任务管理页面注册计划任务

    3.访问 http://网站地址/index.php?g=Cron&m=Index&a=index 即可触发执行计划任务

    1.独立主机

    独立主机用户可以在系统增加计划任务间隔1分钟执行访问 http://example.com/index.php?g=Cron&m=Index&a=index&cron_secret_key=ztbcms

    • Linux 下,添加 crontab 任务
    1. # 借用 curl 来发起 http 请求
    2. * * * * * curl 'http://网站地址/index.php?g=Cron&m=Index&a=index&cron_secret_key=ztbcms'
    3. * * * * * php /你的应用根目录/index.php /Cron/Index/index/cron_secret_key/ztbcms

    参考:Cron表达式生成器

    • Windows 使用计划任务

    Windows 没有默认安装Curl, Wget 等工具,你可以选择安装,并模仿linux上的调用写在bat脚本上即可。但是为了更具跨平台,可以参考下面的例子:

    1.首先编写一个发送HTTP请求的 cron.php (注意修改网站地址):

    2.编写bat脚本

    1. php {你的项目路径}\cron.php

    注意: 需要把 php.exe 的路径放到环境变量

    参考:

    2.虚拟主机用户

    虚拟主机用户,需要在网站模板中最底部增加一个js调用:

    1. 更安全的触发计划任务

    由于触发定时任务的入口链接是固定的,暴露出去容易被恶意攻击。因此提供了可配置的CRON_SECRET_KEY私钥,请求计划任务入口链接的时带上私钥即可!

    :

    1. return array(
    2. );

    触发执行计划任务入口改为:http://网站地址/index.php?g=Cron&m=Index&a=index&cron_secret_key=ztbcms

    开启记录计划任务执行日志,有助于监控计划任务的执行情况,如单个任务的执行时长,太长的计划可以作进一步优化

    定期(默认每30日, 根据自己需求调整)删除计划任务日志,减少大量的日志带来的空间压力。计划任务 DeleteCronLog 建议每日凌晨时间执行一次即可。