定时任务

定时任务在日常业务逻辑中非常常见,我们提供了不依赖操作系统级别的定时任务,只需要在后台就可以定义一个定时任务。

任务类型

定时任务种类

MineAdmin 支持 4 种任务类型:

  • url 任务可以指定一个url地址来请求
  • eval 任务可以直接写入php代码,直接运行php脚本
  • Class 任务可以指定一个PHP类任务,执行类里面的execute方法(此类型任务需要重启服务器)
  • Command 任务可以指定运行hyperf框架定义的命令(此任务需要事先定义好命令)

定时规则

任务的定时规则与Linux系统的定时规则类似,只是系统的定时任务支持秒级的定义:

例如:30 */5 * * * *,代表每隔5分钟的第30秒执行任务

 0    1    2    3    4    5
 *    *    *    *    *    *
 -    -    -    -    -    -
 |    |    |    |    |    |
 |    |    |    |    |    +----- 周 (0 - 6) (星期天=0)
 |    |    |    |    +----- 月份 (1 - 12)
 |    |    |    +------- 天 (1 - 31)
 |    |    +--------- 小时 (0 - 23)
 |    +----------- 分 (0 - 59)
 +------------- 秒 (0-59)

任务参数

目前定时任务只支持传入字符串参数。比如类任务处理的时候,可以以某个字符切分字符串,得到想要的数据。

温馨提示

温馨提示

任务定时时间修改后,并不是即使生效,而需要等待下一分钟后才会生效。

如果遇到定义了秒级定时任务,修改后,若还继续执行不需要惊讶,下一分钟就会按照新的定时规则运行了。