Celery 踩坑筆記

2021-07-14 17:53:58 字數 564 閱讀 2944

常用的類from kombu import exchange, queue

celery task 中不允許呼叫別的 task 後阻塞式的 get 等待結果。版本 3.2 後會對此行為丟擲異常。根據官方文件,應該使用類似管道形式的呼叫來解決。但是我想根據第乙個 task 的結果指定 route_key、exchange,怎麼辦呢?

celery 預設的併發方式是 prefork,是用多程序實現的。很多時候我們都需要在程式中共享變數。用 gevent 解決是乙個好辦法。使用也很簡單,在啟動時加上引數 -p gevent。

celery 非常適合用於那種你把任務丟擲去就不用管了的場景,比如爬蟲爬到資料後的處理。我用它處理了 pipelines,這樣不僅能節省開發成本,還解決了 scrapy 中不能動態指定 pipelines 的問題。完美!對了,記得用 -p gevent。

踩了這麼多坑之後決定放棄 celery;

因為當資料量很大的時候出現了 socket pipeline 錯誤,沒有找到靠譜的解決方案,也沒時間精力深入研究,所以決定放棄生產環境使用 celery。

慎重處理網路操作啊!

後台踩坑筆記

code alau w6b yojdvc viuunk2f8te 7ztp2 tk url phone codevalue 原因 code中含有 等等符號 後台解析url時,會把code中的 識別為路徑中的分隔符,前後分別識別為key value 後台解析失敗,介面請求不成功 解決 encodeur...

golang colly踩坑筆記

剛剛開始學習golang,準備寫個爬蟲練練手,結果遇到了一堆問題 我遇到的問題主要是包匯入的問題,有一些包因為牆 了的原因,有一些是因為未知原因,反正就是裝不了 解決辦法是啥呢?就是手動匯入包。這裡主要給出幾個位址 提示,如果沒有這個目錄需要自己手動建立 第二個是golang.org x text和...

shell 踩坑筆記

if條件判斷 a 123 if a 123 then statement elif a 234 then statement fi錯誤點在於,判斷語句中 號兩端要用空格隔開 另外注意,中左右兩端也要用空格隔開 迴圈書寫 a abc 123 def 定義陣列 for x in do statement...