6 訊息傳送重試

2021-08-17 11:17:10 字數 1787 閱讀 5574

當連線失敗,celery會自動重試傳送訊息,我們可以對重試行為進行設定,譬如說多久重試一次、最大重試次數或者乾脆不重試!

當然這只是官方文件說的,我在windows上進行測試,故意設定了區域網中沒有使用的ip位址作為broker的位址,本來以為會像文件中講的那樣,在重試3次後返回並提示錯誤,結果死活不返回;檢視配置文件,找了各種配置項進行修改,都是這樣,後來在linux下面執行就正常了!感覺celery在windows下執行真的好多坑啊!

from celery import celery

backend='amqp://agent:agent@*.*.*.*:5672',

broker='amqp://agent:agent@*.*.*.*:5672')

def add(x, y):

return x + y

if __name__ == '__main__':

'max_retries': 3,

'interval_start': 0,

'interval_step': 0.2,

'interval_max': 0.2,

})

通過快捷鍵退出程式後,可以看到如下輸出,明顯是阻塞在和broker的tcp連線上了,而且超時時間肯定巨長或者是無限等待

callback)

file "e:\python34\lib\site-packages\kombu\utils\functional.py", line 333, in

etry_over_time

return fun(*args, **kwargs)

file "e:\python34\lib\site-packages\kombu\connection.py", line 261, in connec

return self.connection

file "e:\python34\lib\site-packages\kombu\connection.py", line 802, in connec

ion self._connection = self._establish_connection()

file "e:\python34\lib\site-packages\kombu\connection.py", line 757, in _estab

ish_connection

conn = self.transport.establish_connection()

file "e:\python34\lib\site-packages\kombu\transport\pyamqp.py", line 130, in

stablish_connection

conn.connect()

file "e:\python34\lib\site-packages\amqp\connection.py", line 282, in connect

self.transport.connect()

file "e:\python34\lib\site-packages\amqp\transport.py", line 109, in connect

self._connect(self.host, self.port, self.connect_timeout)

file "e:\python34\lib\site-packages\amqp\transport.py", line 150, in _connect

self.sock.connect(sa)

keyboardinterrupt

RocketMq 訊息重試

順序訊息的重試 對於順序訊息,當消費者消費訊息失敗後,訊息佇列 rocketmq 會自動不斷進行訊息重試 每次間隔時間為 1 秒 這時,應用會出現訊息消費被阻塞的情況。因此,在使用順序訊息時,務必保證應用能夠及時監控並處理消費失敗的情況,避免阻塞現象的發生。defaultmqpushconsumer...

非同步通訊rabbitmq 訊息重試

目標 利用rabbitmq實現訊息重試和失敗處理,實現可靠的消費消費。在訊息消費異常時,自動延時將訊息重試,當重試超過一定次數後,則列為異常訊息,等待後續特殊處理。準備 ttl time to live,通過給訊息 佇列設定過期時間 單位 毫秒 來控制訊息 佇列的生命週期。在達到時間後,訊息會變成d...

重試訊息的處理機制

一般情況下我們在實際生產中是不需要重試16次,這樣既浪費時間又浪費效能,理論上當嘗試重複次數達到我們想要的結果時如果還是消費失敗,那麼我們需要將對應的訊息進行記錄,並且結束重複嘗試 consumer.registermessagelistener messagelistenerconcurrentl...