PHP 的非同步進程助手
async-helper 簡介 PHP 的非同步進程助手,藉助於 AMQP 實現非同步執行 PHP 的方法,將一些很耗時、追求高可用、需要重試機制的操作放到非同步進程中去執行,將你的 HTTP 服務從繁重的業務邏輯中解脫出來。以一個較低的成本將傳統 PHP 業務邏輯轉換成非阻塞、高可用、可擴展的非同步模式。
依賴
安裝 通過 composer 安裝
或直接下載項目源碼
使用範例 業務邏輯:這裡定義了很多等待被調用的類和方法,在你的項目中這可能是數據模型、或是一個發送郵件的類。
生產者:通常是 HTTP 服務,傳統的 PHP 項目或是一個命令行程序,接收到某個請求或指令後進行一系列的操作。
消費者:PHP 的非同步進程,監聽消息隊列,執行你指定的方法。並且該消費者進程是可擴展的高可用的服務,這一切都得益於 AMQP,這是系統解耦、布局微服務的最佳方案。
consume.php
php consume.php 和傳統 PHP 相比 對任何 PHP 方法通過反射進行非同步執行; 高可用,執行方法進入消息隊列,即使伺服器宕機,執行任務也不丟失; 高可用,對異常可以進行不限次數和時間的重試,重試次數和時間可配置; 支持對多個非同步方法包含在事務中執行,支持回滾事務; 方法的參數類型支持除資源類型(resource)和回調函數(callable)外的任意類型的參數; 得益於 AMQP,非同步方法可以承受高並發、高負載,支持集群部署、橫向擴展; 低延時,實測延時時間 0.016 ~ 0.021s; 適用於:日常資料庫操作、日誌收集、金融交易、消息推送、發送郵件和簡訊、數據導入導出、計算大量數據生成報表; 附錄 安裝 memcached 安裝 rabbitmq 安裝 php7.1.5、ext-amqp、ext-memcached 安裝 supervisor
更多分享,敬請關注
本文來源網路,侵立刪!
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※php7擴展使用持久化hash
※Nginx 啟用 Brotli 壓縮
TAG:PHP技術大全 |