當前位置:
首頁 > 知識 > Redis隊列最佳實踐

Redis隊列最佳實踐

Redis隊列最佳實踐



Redis隊列簡單應用-Python

@[redis|隊列|非同步任務|python]


大家通常會有這樣需求,當我在一個web api中我想要去發送一個郵件,發送一個簡訊, 下發一個特別耗時的任務的時候,往往想到的是建一個celery吧,今天來說一下自己寫一個簡單redis隊列非同步任務worker。


Redis隊列模式介紹


Redis的隊列模式有兩種應用:

生產消費模式:N個worker同時搶任務,適用於發郵件,發簡訊


訂閱發布模式:N個worker同時都得到這個任務,適用於一個數據要存到多個地方去


生產消費者模式


這個用的是redis的 和 具體的邏輯看代碼


worker端 (work.py):

client端 (client.py):


執行 我啟動了兩個worker 然後client發送了10次任務, 輸出如下:


發布訂閱模式


這裡使用的是Redis 的功能


worker端 (worker.py):

client端 (client.py):


執行 我啟動了兩個worker 然後client發送了3次任務, 輸出如下:


尾巴


有的時候,發送郵件之類的需求,其實並不需要去等待處理的結果如何,非同步任務往往是最佳的選擇。當你不想上之類的框架,或者你的事情特別簡單的話,可以嘗試這種方式去做這樣一個簡單的worker。

關於部署,推薦使用之類的工具,啟動多個或者管理狀態都是極好的。


關於穩定性,線上的推送/郵件/簡訊,都是基於這個在跑著,大半年了沒出過狀況,但只是我的場景實踐,僅供參考。


如果你還需要知道執行的結果和監控任務執行的進度的話,想必是極好的。


最近熱文:


1、邀你參加11期 程序員專場相親活動


2、PHP高工/架構師,18-50K,深圳南山


3、JAVA/Web前端,深圳前海,15-30K


4、如何判斷是否到了該辭職的時候?


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序源 的精彩文章:

當寫爛代碼的人離職之後
推薦大家使用的CSS書寫規範、順序
Go 語言 HTTP Server 源碼分析

TAG:程序源 |

您可能感興趣

被視為代替Kafka的消息隊列:Apache Pulsar設計簡介
React、頁面渲染、任務隊列、Node.js
消息隊列CKafka
進程間的通信 IPC——實現消息隊列(msg)
簡析Python中的四種隊列
分散式隊列神器 Celery
RabbitMQ 高級篇八 消費端ACK與重回隊列
Rocketmq之消息隊列分配策略演算法實現的源碼分析
RabbitMQ高級篇九TTL設置隊列或消息有效期隊列及消息
用於腹側疝修復的改良Chevrel技術:單個中心隊列的長期結果
kafka消息隊列學習整理
Nature:氣勢磅礴!中國最大出生隊列研究碩果累累,引國際「圍觀」
日常生活中的膳食蛋白質來源和肌肉質量 「Lifelines」 隊列研究
linux內核對網卡驅動多隊列的支持
RabbitMQ消息中間件技術精講17 高級篇十 死信隊列
Linux 下的進程間通信:使用管道和消息隊列
List順序表,鏈表隊列,棧,字典
糞鈣衛蛋白和內鏡下UCEIS評分預測急性重症UC的短期結局:前瞻性隊列研究
攝影師意外拍到G27K清晰照 德軍KSK特種部隊列裝新型步槍
消息隊列 MQ 專欄