这篇文章主要分享 Timer 毫秒精度的定时器。
本地版本:PHP 7.2.6、Swoole 4.3.1。
Timer
主要有三个方法:
swoole_timer_tick 间隔的时钟控制器
swoole_timer_after 指定的时间后执行
swoole_timer_clear 删除定时器
示例代码:
运行结果:
tick 3000ms - 2019-04-07 21:36:56
tick 3000ms - 2019-04-07 21:36:59
tick 3000ms - 2019-04-07 21:37:02
after 9000ms - 2019-04-07 21:37:02
应用场景
一、比如,每天凌晨跑业务脚本,脚本中包括了请求其他业务方或第三方的接口,如果接口超时无响应或没有数据返回,需要进行重试。
重试机制为:每5隔分钟再发送一次请求,最多尝试5次,在5次内成功停止该任务,5次仍失败也停止该任务。
示例代码:
运行结果:
2019-04-07 21:40:48 执行任务中...(1)
2019-04-07 21:40:48 请求接口失败,5分钟后再次尝试
2019-04-07 21:45:48 执行任务中...(2)
2019-04-07 21:45:48 请求接口失败,5分钟后再次尝试
2019-04-07 21:50:48 执行任务中...(3)
2019-04-07 21:50:48 请求接口失败,5分钟后再次尝试
2019-04-07 21:55:48 执行任务中...(4)
2019-04-07 21:55:48 请求接口失败,5分钟后再次尝试
2019-04-07 22:00:48 执行任务中...(5)
2019-04-07 22:00:48 请求接口失败,已失败5次,停止执行
二、比如,设计一个用WEB界面管理管理定时任务的系统。
Linux Crontab 最小时间粒度为分钟。
PHP Swoole 最小时间粒度为毫秒。
0 1 2 3 4 5
| | | | | |
| | | | | +------ day of week (0 - 6) (Sunday=0)
| | | | +------ month (1 - 12)
| | | +-------- day of month (1 - 31)
| | +---------- hour (0 - 23)
| +------------ min (0 - 59)
+-------------- sec (0-59)
WEB界面管理
登录、权限管理
任务管理(增删改查)
脚本机管理(机器IP地址)
任务日志
架构图
相关文章
- 03-21Swoole Timer 的应用
- 03-21应用技术大公开系列Q之五:(导热).石墨烯导热硅脂的制备工艺 (*7-5)
- 03-21DS二叉树的先序遍历及应用
- 03-21齐岳定制ICG纳米颗粒应用于癌症的PTT和PDT(ICG-PEG-DPPE/DSPE/DOPE/DLPE/NH2/COOH/cRGD)
- 03-21DL之AE:自编码器AutoEncoder的简介、应用、经典案例之详细攻略
- 03-21全面掌握Spark2.0 ML机器学习,ML的应用开发和定制开发
- 03-21ML:人工智能之机器学习ML解决实际应用问题的思路总过程(最全)
- 03-21ML之SR:Softmax回归(Softmax Regression)的简介、使用方法、案例应用之详细攻略
- 03-21ML之Validation:机器学习中模型验证方法的简介、代码实现、案例应用之详细攻略
- 03-21Aigtek功率放大器ATA-61520在电火花加工中的应用