gpt4 book ai didi

python - redis 队列中的并发

转载 作者:可可西里 更新时间:2023-11-01 11:23:26 31 4
gpt4 key购买 nike

我正在使用托管在 heroku 上的 django 应用程序和 redistogo addon:nano pack。我正在使用 rq,在后台执行任务 - 任务由在线用户发起。我对增加连接数量有限制,恐怕资源有限。

我目前有一个工作人员运行“n”个队列。每个队列使用连接池中的一个连接实例来处理“n”种不同类型的任务。例如,如果有 4 个用户启动相同类型的任务,我想让我的主要工作人员动态创建子进程来处理它。有没有办法实现所需的多处理和并发?

我尝试使用 multiprocessing 模块,最初没有引入 Lock();但这会使用先前的请求数据公开并覆盖用户传递给启动函数的数据。应用锁后,它通过返回 server error - 500

来限制第二个用户发起请求

github link #1 : 看起来团队正在处理 PR;虽然还没有发布!

github link #2 :这篇文章有助于解释在运行时创建更多的工作人员。但是,此解决方案也会覆盖数据。新请求将再次使用之前的请求数据进行处理。

如果您需要查看一些代码,请告诉我。我将尝试发布一个最小的可重现片段。

有什么想法/建议/指南吗?

最佳答案

您有机会尝试吗 AutoWorker

自动生成 RQ Worker。

from autoworker import AutoWorker
aw = AutoWorker(queue='high', max_procs=6)
aw.work()

它使用 multiprocessingredis 模块中的 StrictRedis 并从 rq 导入之后

from rq.contrib.legacy import cleanup_ghosts
from rq.queue import Queue
from rq.worker import Worker, WorkerStatus

关于python - redis 队列中的并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56685466/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com