Hap*_*der 7 python queue flask
我正在使用带有烧瓶的 RQ 在循环中排队作业。我有以下代码:
from rq import Queue
from rq.job import Job
from worker import conn
q = Queue(connection=conn)
for i in range(5):
job = q.enqueue_call(
func=process_data, args=(i, data,))
print(job.get_id())
Run Code Online (Sandbox Code Playgroud)
现在我收到错误:
TypeError: cannot pickle '_thread.lock' object
Run Code Online (Sandbox Code Playgroud)
我有以下代码的工人:
import os
import redis
from rq import Worker, Queue, Connection
listen = ['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()
Run Code Online (Sandbox Code Playgroud)
如何纠正?
小智 3
我通过从 Python 3.8 降级到 Python 3.7 解决了类似的问题
我的情况有点不同。我正在运行 Django 服务器,它使用 Django-Q 安排任务。然而Django-Q是基于RQ的,错误
类型错误:无法腌制“_thread.lock”对象
是由Python的多处理模块抛出的,所以我相信解决方案会翻译。
截至 2020 年 5 月,我预计这是一个错误,尽管尚不清楚是什么原因造成的。