首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python-rq worker支持多处理模块吗?

python-rq worker支持多处理模块吗?
EN

Stack Overflow用户
提问于 2020-02-29 01:41:18
回答 1查看 284关注 0票数 4

我目前有多个python-rq工作线程并行地执行队列中的作业。每个作业还使用python多处理模块。

作业执行代码简单如下:

代码语言:javascript
复制
from redis import Redis
from rq import Queue
q = Queue('calculate', connection=Redis())

job = q.enqueue(calculateJob, someArgs)

calculateJob是这样定义的:

代码语言:javascript
复制
import multiprocessing as mp
from functools import partial

def calculateJob (someArgs):
 pool = mp.Pool()
 result = partial(someFunc, someArgs=someArgs)

def someFunc(someArgs):
 //do something
 return output

因此,假设在处理作业时,所有核心都会自动被该作业利用。如果第一个作业已经在使用所有内核,那么并行处理另一个作业的另一个worker如何执行它的作业?

EN

回答 1

Stack Overflow用户

发布于 2021-07-17 07:52:30

这取决于您的系统如何处理进程。就像打开一个视频+5个进程并不能完全冻结你的6核计算机一样。每个工作进程都是一个新的进程。(实际上是一个流程的分叉)。您可以将每个作业放在一个队列中,让rq通过产生多个工作进程来处理多进程,而不是在作业内部进行多进程处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60456830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档