Task queue[一] Tq基礎
wordsCount: 356
readingTime: 1 min
viewers:
TaskQueue & MessageQueue
傳送物件 | 抽象層級 | 主要設定 | 相同 | |
---|---|---|---|---|
Tq | 任務 | 高(基於mq的封裝) | 任務的使用方式與處理 | 異步與分散式 |
Mq | 訊息 | 低 | 訊息的傳送對象與傳遞方式 | 異步與分散式 |
白話介紹
Tq是在Mq上再次開發,省略底層細節(還是可藉由參數控制Mq設定),所以會有Mq的角色在底層協助,不用去指定任務要到哪裡去處理,而是聚焦在如何處理
工具解決目標
網站的長時間任務,或定期的高併發任務須要做分散式處理
常見的Tq有Python Celery,Go Machinery…
任務代理人
經紀人Broker(就是Mq的Broker)
任務發送者
網站 或 定期程式
任務接收者
工人Worker(就是Mq的Consumer)
任務
在queue傳送的主要對象都是任務,可夾帶參數,可回傳結果,因通常在高併發場景,所以盡量降低網路間傳送的資訊量,在worker才去取需要的資訊, 或者在worker就把任務處理完成,不必回傳結果
Table of Contents
Related Posts
Task queue[三] Celery(二)
任務定義 將裝飾器綁到函數 celery = Celery(__name__,broker=broker) @celery.task def add(x: int, y: int) -> int: time.sleep(5) return x + y add 就是一個task 任務使用 完整版 apply_async(args[, kwargs[, …]])
2024-1-27
Task queue[二] Celery
緣由 在工作上,遇到單機已經過多負荷,所以開始做實作分散式爬蟲 Celery定義 分散式任務隊列處理 架構 任
2024-1-27
Message Queue[三] Kafka
緣由 因為工作學了rabbitMQ,所以閒暇之餘來學kafka,想知道兩者的差異 比較 速度 訊息保證 訊息大
2024-11-23
Message Queue[一] Mq基礎
MessageQueue(MQ) 訊息貯列,協助訊息以非同步方式溝通,常見協議MQTT,AMQP 訊息代理人 經紀人Broker 訊息發送
2023-11-18
Message Queue[二] RabbitMq & Pika Pika
緣由 在工作上,因為需要導入發布訂閱模式,故在幾種常見的Mq中做選擇 發布/訂閱 速度 訊息保證 訊息大小 訊息
2023-11-18
Sponsor
Wechat
Alipay