python生產者消費者
❶ python設計模式之工廠模式、策略模式、生產者-消費者模式
總結設計模式:工廠模式、策略模式、生產者-消費者模式,以Python為例進行說明。
策略模式主要應用於需要根據特定條件選擇方法的情況,如根據不同的演算法選擇調用對應的方法以實現動態切換功能。具體實現時,首先定義一個抽象策略類,包含抽象方法,然後通過繼承該類創建具體策略類,並通過上下文類調用具體策略方法。此模式有利於方法的維護和動態選擇。
工廠模式在Python中有三種主要類型:簡單工廠模式、工廠方法模式和抽象工廠模式。簡單工廠模式通過靜態方法創建不同類型的對象,適用於產品類型較少且不經常變化的場景。工廠方法模式通過抽象的工廠方法將對象創建延遲到具體創建者類中,適用於子類較多且需要頻繁添加新產品的場景。抽象工廠模式在有多個分類時,通過抽象工廠產生需要的對象,適用於需要創建多個相關產品類型的場景。
生產者-消費者模式則通過隊列實現資源共享,生產者生成數據放入隊列,消費者從隊列中取出數據進行處理。使用Python的Queue模塊可以避免手動處理鎖等線程同步機制,實現線程安全。
集成三種模式的示例代碼:定義抽象產品類,包含抽象方法計算折扣後的價格。創建具體商品類並實現抽象方法。定義抽象工廠類創建具體產品對象,創建具體工廠類。定義抽象折扣策略類和具體折扣策略類。創建生產者類生成商品對象放入隊列,消費者類從隊列中獲取對象並應用折扣策略。
❷ pika-Python RabbitMQ使用介紹
RabbitMQ是基於AMQP協議的消息系統,運行在Erlang OTP平台上。
RabbitMQ採用消息隊列模型,消息存儲於Queue中。生產者(P)生成消息後,最終將消息投遞至Queue。消費者(C)從Queue中獲取並消費消息。
在Windows 10環境下,先安裝Erlang運行環境,需下載並添加環境變數。若已安裝其他版本,需卸載後重新安裝和設置。命令行輸入erl確認運行成功。接著安裝RabbitMQ,推薦使用最新版,並添加環境變數。
安裝好RabbitMQ後,作為後台服務運行。安裝rabbitmq_management插件,用於可視化伺服器狀態和操作。在瀏覽器輸入 http://localhost:15672 登錄,使用默認賬號guest/guest。
使用pip安裝Python pika包,實現消息生產者與消費者的交互。
生產者操作:通過RabbitMQ管理界面創建連接、通道、選擇隊列並發送消息。在Queue中接收Ready的消息後,關閉連接。
消費者操作:設置回調函數處理接收到的消息,指定消費者並指定隊列及回調函數。自動確認消息,監聽並運行回調函數,顯示「Hello World!」。
總結:完成RabbitMQ在Windows下的安裝與基礎配置,包括安裝Erlang和RabbitMQ、設置環境變數、安裝rabbitmq_management插件,以及使用pika庫實現生產者和消費者的通信。