本地版本:
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次,停止执行


OnlyTetter
1 声望0 粉丝