一種是在task的執行方法中再add乙個一樣路徑的task(注意不能使用自定義佇列名字), 這樣會產生多乙個佇列.
但是方便好用,我一開始也是一直用這個.但是任務一多往往產生重複佇列.要知道gae的task是沒辦法操作的,而且gae開發人也拒絕在下乙個版本中加入更具體的操作佇列的功能.不能不說是乙個遺憾.
第二種方法也是後來我改用的,使用task佇列自帶的重試功能,自定義好queue.yaml檔案後,一樣很好用
裡例如我的配置:
- name: hourwork
rate: 500/h
retry_parameters: #這裡以下就是重複引數
task_retry_limit:200 #最大重複次數
task_age_limit: 1d #最大重複時間 這裡是1天的意思
min_backoff_seconds: 30 #最小重複等待時間 秒
max_backoff_seconds: 60 #最大重複等待時間 秒
max_doublings: 0 #最小到最大重複時間的倍數
它可以重複同時滿足條件:200次跟一天時間. 所以幾乎是沒限制了
然後在task的執行方法中return 乙個404 或者 500 之類的錯誤他就會重複執行了
GAE中Memcache快取學習筆記
memcache是高效能,分布式的儲存系統,主要作用是實現資料查詢結果的快速獲取。它是以 名 值 對的形式儲存在快取裡的。例子 set key,value,time 0,min compress len 0 不理會以前的內容設定key的值,time單位是秒 get key 獲取key對應的內容 de...
訊息佇列 怎麼處理訊息佇列中重複的資料
在分布式系統中,上游發來的訊息佇列必然會存在重複的資料,這是不可避免的。producer在傳送訊息時比如遇到網路問題時,傳送後因超時得不到伺服器的ack,從而進行重發。如果傳送的訊息內容是銀行扣款,那麼發生的問題可想而知。有人會問為啥中介軟體不能幫我們做排重?中介軟體排重會有以下問題 名稱質量標準 ...
訊息佇列 重複消費問題
所謂冪等性,就是資料無論操作多少次,所產生的影響跟執行一次是一樣的,比如對於讀操作來說,無論讀取多少次資料,都跟讀取一次的資料是一樣的,所以讀操作是乙個冪等性操作,而新增操作,新增多次會有多條記錄,因而寫操作則是非冪等性操作。因而對於以上場景,只要保證訊息消費的冪等性,就能解決重複消費的問題。常見的...