php定时任务 workerman+tp6开发
- 运行环境要求PHP7.1+,兼容PHP8.0。
- workerman 3.x 以上
- qq:1219481875
功能特性
- 异步执行
- 多进程执行任务
- 自定义多进程数量
- 自定义执行器
安装说明
第一步: 安装tp核心依赖库文件
composer install
第二步:修改数据库配置
修改 database.php 数据库配置
第三步:创建数据表
php think syndb
第四步:启动定时器
windows下双击start_for_win.bat 文件
linux下输入 php statrt.php start -d 即可
第五步
访问 http://你的域名/admin 添加编辑 任务
注意php版本下的禁用函数要删除
pcntl_fork
pcntl_signal
pcntl_signal_dispatch
pcntl_wait
pcntl_alarm
任务类型
只支持访问网址url
类型的任务。
crontab规则
* * * * * *
- - - - - -
| | | | | |
| | | | | +------- day of week (0 - 6) (Sunday=0)
| | | | +---------- month (1 - 12)
| | | +------------- day of month (1 - 31)
| | +---------------- hour (0 - 23)
| +------------------- minute (0 - 59)
+---------------------- second (0 - 59)可选
精确到分(5位): * * * * *
精确到秒(6位):0 * * * * *
一般用5位的就行,秒位默认为0,即每分钟的第0秒执行。
一些常用规则
说明 | 规则 |
---|---|
每1秒执行 | */1 * * * * * |
每分钟第30秒行 | 30 * * * * * |
每分钟执行 | * * * * * |
每2分钟执行 | */2 * * * * |
每隔30分钟执行一次(整点、半点): | */30 * * * * |
每小时第30分钟执行: | 30 * * * * |
每2小时执行(整点): | 0 */2 * * * |
每2小时第30分执行: | 30 */2 * * * |
每天03点30分执行: | 30 3 * * * |
每天03~08点,每隔30分钟执行(整点、半点): | */30 3-8 * * * |
每天03~08点,每小时第30执行: | 30 3-8 * * * |
每月1号的3点30执行: | 30 3 1 * * |
每月2号的03、06、09点,15分、20分执行: | 15,20 3,6,9 2 * * |
每周星期二的05点40分执行: | 40 5 * * 2 |
每周(星期日、星期六)的05点40分执行: | 40 5 * * 0,6 |
每年6月的每个星期一05点0分执行: | 0 5 * 6 1 |
每年3、6、9月的15号05点0分执行: | 0 5 15 3,6,9 * |
注意:
- 每隔几分钟,每隔几小时,每隔几天,都是代表数字能被整除,不一定是严格间隔。比如,每小时有60分钟,当60除以间隔数字不能除尽时就不是严格间隔。比如
*/7 * * * *
每隔7分钟,每小时56分后要到下一个小时的07分,间隔11分钟。 - day of week 和 day of month是有冲突的,严格来讲不能同时设置。比如
30 3 2 * 2
,每月2号的星期二,能同时满足是2号并且是星期二的日期很少。 - second、minute、hour,一般设置了huor,那么second、minute也必须设置。设置了huor,那么minute也必须设置。比如
* 3 * * *
(5位规则精确到分设置了huor,没设置minute,秒位默认0),每天03点00分开始每分钟执行一次,一直到3点59分,执行了60次。再比如* * 3 * * *
(6位规则精确到秒,设置了huor,没设置minute和second),每天03点00分00秒开始每秒钟执行一次,一直到3点59分59秒,执行了3600次。如果只想在03点的时候执行一次,一般建议写成0 3 * * *
,minute设置为0~59,执行一次。
加粗样式