當前位置:
首頁 > 知識 > 50行Python代碼實現簡單的任務隊列

50行Python代碼實現簡單的任務隊列


當你的項目需要一個任務隊列時,當然你會先想到celery,然後你花了三個月弄懂了基本的配置選項,你覺得已經生無可戀了。也許你可以使用簡單一點的任務隊列,如huey和rq。


或者,你自己寫一個如何?你能做到的!

首先,我們使用redis作為消息的存儲組件。我們不需要單獨安裝redis,我們用docker來獲取一個redis。打開終端,然後運行



對,你做到了。然後我們創建一個Python虛擬環境來管理依賴庫。我們需要redis的Python鏈接庫和dill。


很好。我們的代碼使用dill來把要執行的函數序列化為一個任務,然後存儲到redis中。




客戶端部分(任務隊列的客戶端,不是APP)

客戶端把消息發送到任務隊列中。打開一個編輯器,創建一個名為client.py的文件。然後我們定義要發送給worker(工作者進程)的任務,例如:



現在我們需要配置我們的redis客戶端:



這些都完成後,我們開始生產一些任務,並且把它推送到任務隊列中


工作者進程

工作者進程實際地完成任務。它們就是盯著消息隊列,隊列中有任務了就抓取下來,把任務完成,然後告訴隊列我完成了,刪除這個任務吧。就這麼簡單。打開編輯器,創建一個名為worker.py的文件,然後輸入下面內容:



你已經完成了所以的代碼,運行這個工作者進程吧:



你甚至可以在其他機器上運行,任務隊列是天生支持分布式的。然後再運行客戶端創造一些任務:



50行代碼都不到,是不是很佩服自己?





英文原文:

https://github.com/JoseTomasTocino/yotaq



譯者:詩書塞外




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

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


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

四個 Python 庫,實現超實用的命令行功能
Windows上Python2與Python3 共存
Python語言在未來的發展前景
用 Python 做股市數據分析(一)

TAG:Python |

您可能感興趣

10行Python代碼實現語音識別
給數據科學家的 Python 3 指導;簡單 chatbot 代碼實現
一行代碼實現底部導航欄TabLayout
這5小段代碼輕鬆實現數據可視化(Python+Matplotlib)
任務調度並行演算法的Python簡單實現
Github 代碼實踐:Pytorch 實現的語義分割器
Github代碼實踐:Pytorch實現的語義分割器
用PyTorch 0.4 實現的 YoloV3
GAN如此簡單的PyTorch實現,一張臉生成72種表情(附代碼)
比Python快100倍,利用spaCy和Cython實現高速NLP項目
Andrew Ng經典機器學習課程的Python實現2
android 訪問webservice(解析一行代碼實現)
用Numpy 實現簡單的 GAN
Pytorch實現CNN時間序列預測
TensorFlow實現StarGAN代碼全部開源,1天訓練完
用Python 實現的機器人演算法示例集合——PythonRobotics
基於Netty的Android系統IM簡單實現原理
Python yield與實現
Apache+Tomcat實現單機多網站部署
單線程實現同時監聽多個埠(windows平台c++代碼)