首先,在各種業務型系統中,往往需要伺服器在後台掃描相關數據,觸發對應的統計、通知等操作。
例如對於一個專案管理系統,需要每天的特定時間內,統計每項任務的執行、到期情況、整個專案的進度等等,根據統計情況,做相應通知處理; (推薦學習: swoole影片教學)
這樣一個場景,如何程式實作?
用一般的程式設計方式,是無法實現自動觸發與統計的。當然,簡單的思路,是利於系統的cron job機制。但這種方式,對於配置及可靠性方面,需要比較多的人為操作因素。
Swoole是使用c開發的php擴展,透過php就可以實現高效能web伺服器,同時,也內建了定時器Timer、任務佇列Task特性。這樣,基於swoole,你可以在程式層面控制實作方式,減少對外部工具 - 獨立的訊息佇列伺服器、定時任務管理工具等的依賴性。
swoole的強大之處就在與其進程模型的設計,既解決了非同步問題,也解決了並行。
用法如下:
swoole_server_addtimer($serv, 10);
第二個參數是計時器的間隔時間,單位為秒。 swoole定時器的最小顆粒是1秒。支援多個定時器。注意不能存在2個相同間隔時間的定時器。增加定時器後需要寫一個回呼函數。
具體程式碼如下:
swoole_server_handler($serv, 'onTimer', my_OnTimer); function my_OnTimer($serv, $interval) { echo "Timer[$interval] is call\n"; }
Task模組,用來做一些非同步的慢速任務,例如webim中發廣播。類似node.js,假如有10萬個連接,要發廣播時,那會循環10萬次,這時候程式不能做任何事情,不能接受新的連接,也不能收包發包。
而swoole不同,丟給task進程之後,你的reactor,worker照跑不誤。任務完成後會非同步地通知worker進程告訴它此任務已經完成。
以上是swoole能設定多個定時器嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)