亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

類型錯誤:無法使用 RQ 腌制“_thread.lock”對象

類型錯誤:無法使用 RQ 腌制“_thread.lock”對象

蠱毒傳說 2022-09-06 16:31:18
我正在使用帶有燒瓶的RQ在循環中排隊作業。我有以下代碼:from rq import Queuefrom rq.job import Jobfrom worker import connq = Queue(connection=conn)for i in range(5):    job = q.enqueue_call(    func=process_data, args=(i, data,))    print(job.get_id()) 現在我得到錯誤:TypeError: cannot pickle '_thread.lock' object我有以下代碼的工人:import osimport redisfrom rq import Worker, Queue, Connectionlisten = ['default']redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379')conn = redis.from_url(redis_url)if __name__ == '__main__':    with Connection(conn):        worker = Worker(list(map(Queue, listen)))        worker.work()如何糾正這種情況?
查看完整描述

2 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

我通過從Python 3.8降級到Python 3.7解決了類似的問題。

我的情況有點不同。我正在運行一個Django服務器,它使用Django-Q調度任務。但是,Django-Q基于RQ,并且錯誤

類型錯誤: 無法腌制“_thread.lock”對象

是由Python的多處理模塊拋出的,所以我相信解決方案會轉換。

截至2020年5月,我預計這是一個錯誤,盡管目前尚不清楚導致它的原因。


查看完整回答
反對 回復 2022-09-06
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

TypeError: cannot pickle '_thread.lock' object

此錯誤主要源于您嘗試使用 pickle 序列化不可序列化的對象。您可以通過為 Redis() 創建一個對象來檢查相同的內容,并嘗試執行以下操作:


import pickle

r = Redis()

pickle.dumps(r)

它會給你同樣的錯誤。此外,對于當前方案。這可能來自


q = Queue(connection=conn)

因為,您正在嘗試導入連接連接。你可以定義這樣的東西::


q = Queue(connection=Redis())

r = Redis(host='localhost', port=6379, db=0)


查看完整回答
反對 回復 2022-09-06
  • 2 回答
  • 0 關注
  • 242 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號