需求背景 在我司負責的其中一個微服務為公司的各個事業線提供了整個短信接口。受限于日益抓緊的電信運營商的政策,短信發送越來越困難。各個短信服務商都提出了類似的報備短信模板的要求...

需求背景 在我司負責的其中一個微服務為公司的各個事業線提供了整個短信接口。受限于日益抓緊的電信運營商的政策,短信發送越來越困難。各個短信服務商都提出了類似的報備短信模板的要求...
上周公司支付系統出現了故障,在故障處理后的善后排查中發現了某賬戶某段時間內資金和流水對不上,最終發現了一個并發BUG。由于該BUG具有一定普通適性,故整理成文到內部知識庫,簡...
異步任務的封裝 Yar用yar_call_data_t表示一個異步任務,sequence是從1開始的任務ID,除了sequence,其他基本上就是對應Yar_Concurre...
傳輸器結構 yar底層用一個_yar_transport_interface結構表示一個傳輸器,處理網絡IO相關事宜。 yar_transport_interface_t由y...
Server模塊提供了一個基于Http的Yar協議的Server實現。常見的使用方法如下 在你所用的框架的action下執行以上代碼,并為Ycf-Client提供能通過具體路...
Yar拓展自帶了一個Yar的PHP客戶端,這一章先講yar的同步客戶端實現。 我們假設使用代碼如下: Client構造器 從Yar_Client類的構造器看起,Yar_Cli...
請求的底層結構 Yar底層使用yar_request_t來描述一個請求的所有信息.以以下RPC底層調用為例 id成員使用mt_rand()生成的隨機數填充,用于(弱)唯一標識...
協議頭結構 yar底層使用一個yar_header_t描述載荷的協議頭信息. id 即requestId,用來標識同一個來回的rpc數據。 version為協議版本,yar以...
序 Yar是鳥哥惠新宸寫的一款并行RPC框架,是國內PHP圈內主流的RPC方案選擇,也是筆者公司服務化體系中的基礎組件。為了更深入的理解其實現原理和熟悉該工具,抽空刷了遍源碼...
@fly1234 執行進程僅僅是投遞,任務是task進程執行的,如果消費太慢也是積壓unixsock緩沖區,table本身是及時清的。另外定時任務之間的執行是獨立的,你觀察到串行執行,很可能是因為你沒有改task進程數配置,我記得swoft默認配置是1。
[原創]Swoole和Swoft的那些事(Task投遞/定時任務篇)Swoft的任務功能基于Swoole的Task機制,或者說Swoft的Task機制本質就是對SwooleTask機制的封裝和加強。 任務投遞 任務投遞Task::delive...
今天翻PHP源碼,無意中翻到了pcntl的源碼,簡單看了看,被嚇了一跳。 這是pcntl模塊初始化的代碼。 PHP_MINIT_FUNCTION(pcntl){ php...
Swoft的任務功能基于Swoole的Task機制,或者說Swoft的Task機制本質就是對SwooleTask機制的封裝和加強。 任務投遞 任務投遞Task::delive...
Swoft在PHPer圈中是一個門檻較高的Web框架,不僅僅由于框架本身帶來了很多新概念和前沿的設計,還在于Swoft是一個基于Swoole的框架。Swoole在PHPer圈...
@異想天開_42a5 這里的配置指的是注解,參考下上文第一段。
[原創]Swoft源碼剖析-Swoft中AOP的實現原理AOP(面向切面編程)一方面是是開閉原則的良好實踐,你可以在不修改代碼的前提下為項目添加功能;更重要的是,在面向對象以外,他提供你另外一種思路去復用你的瑣碎代碼,并將其和你的...
為什么需要引入連接池? 對于基于php-fpm的傳統php-web應用,包括且不限于Mysql,Redis,RabbitMq,每次請求到來都需要為其新建一套獨享的的連接,這直...