這篇文章主要分享 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次,停止執行
這里我還準備了一分學習圖和資料,如下:

鏈接:https://pan.baidu.com/s/1v5gm7n0L7TGyejCmQrMh2g 提取碼:x2p5
免費分享,但是X度限制嚴重,如若鏈接失效點擊鏈接或搜索加群 群號518475424,
二、比如,設計一個用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地址)
任務日志
架構圖
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/117778.html
標籤:PHP
上一篇:Swoole HTTP 的應用
