Rabbitmq 和 Celery 是怎樣工作的

時間 2021-05-30 11:46:28

1樓:飛的翔

Celery的核心在於更好更優雅的分布式非同步的task,是基於Rabbitmq,redis的pubsub等輪子來實現非同步訊息(包括輸入,中間值,結果等)的儲存和中轉。

2樓:彼得潘大叔

Rabbitmq 是訊息佇列存放任務資訊和任務引數,Celery消費端,監聽Rabbitmq從Rabbitmq取到任務資訊引數進行下一步處理。

3樓:楊平

首先,RabbitMQ是個訊息佇列的實現。

將訊息佇列應用到何種場景,得看自己需求。

你可以拿它自己實現任務分發(自己實現乙個Celery),也可以拿它實現訊息推送,甚至只是用它解耦應用的物理結構,等等等等...

其次,Celery是乙個任務分發系統。

任務分發系統目的很明確,就是利用後端待命的無數worker實現一系列任務的快速處理。

它跟訊息佇列的關係不過是利用其在分發者和執行者之間進行任務的發布/訂閱。

所以RabbitMQ和redis等具有發布/訂閱能力的工具,理論上都能為其所用。

4樓:小明

Celery相當於給你包裝了乙個現成的系統,讓你更加方便的在自己的專案中操作RabbitMQ這個訊息佇列介質。不然你什麼都要自己在RabbitMQ上重新寫。最直接的例子就是在Celery Python裡,你只需要config一下settings,然後就可以用decorator來輕鬆使用訊息佇列了,而不用重新在RabbitMQ上寫自己的指令碼。

5樓:樊天宇

拋磚引玉,在看 celery 的文件,貌似不長,寫得也蠻好的,奈何閱讀理解不過關,一邊啃一邊答~

celery 文件: Celery - Distributed Task Queue

首先對 celery 進行一下簡單介紹:celery 是一種分布式任務排程框架(類似的產品,如 Gearman),特點是支援非同步化處理。語言方面目前已支援 python,ruby,node-js,php,還支援 web 呼叫。

celery 非同步處理需要傳遞訊息和儲存結果,傳遞訊息的叫 Broker(訊息中介軟體),儲存結果的叫 backend。

celery 中 Broker 和 backend 都是通過對訊息的傳送、接收、儲存實現的。celery 訊息的解決方案預設使用 amqp 協議(即 RabbitMQ),可以在配置中指定其他的訊息解決方案。目前對 RabbitMQ、Redis 支援比較好,其他如 BeanStalk,ZeroMQ,MongoDB等僅有實驗性支援,見 Brokers — broker-overview

rabbitMQ到底是個啥東西?

夢中人 這兩篇博文會直接給你答案 訊息佇列之 RabbitMQ dying 擱淺 CSDN部落格 訊息佇列之 Kafka dying 擱淺 CSDN部落格 天龍 RabbitMQ 是乙個由 Erlang 語言開發的 AMQP 的開源實現。AMQP Advanced Message Queue,高階訊...

so that和such that和too,to的區別?

風zz 1 so that 引導目的狀語從句。意思是 以便,為了 so 形容詞或副詞原形 that 引導結果狀語從句。意思是 如此 以致 此時可與too.to.互用。2 such a an 形容詞 名詞單數 that,或such 形容詞 不可數名詞或複數名詞 that 意思是 如此 以致 3 too...

Jennie和Lisa Rosie和Jennie不合是真的嗎?

鶴映辰 假的!假的!假的!BLACKPINK成團加上練習生時期大概 將近十年的感情你跟我說她們不合?不合早就be了 DASISIANNIECYR jenlisa一起當的練習生我們看不到那段時光但是能一起承受痛苦的一定關係很好 D jenlisayyds 至於jen和rose應該比較business吧...