В настоящее время у меня есть несколько python -rq рабочих, выполняющих задания из очереди параллельно. Каждое задание также использует многопроцессорный модуль python.
Код выполнения задания просто такой:
from redis import Redis
from rq import Queue
q = Queue('calculate', connection=Redis())
job = q.enqueue(calculateJob, someArgs)
И вычислениеJob определяется следующим образом:
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
Итак предположительно, когда задание обрабатывается, все ядра автоматически используются этим заданием. Как другой работник, выполняющий другую работу параллельно, выполняет свою работу, если первая работа уже использует все ядра?