我有一个非常短的python脚本:
from celery import Celery
app = Celery('tasks',backend='rpc://guest@localhost//', broker='pyamqp://guest@localhost//')
# CONFIGURE A BACKEND
@app.task
def cal(x, y, n):
numUse = x**3**n
denUse = y**3**n
return numUse//denUse
@app.task
def PRP(n):
# probable prime test. Use Fermat's Little Theorom
# choose a non-multiple of n
a = 2
val = 2**(n-1) % n
return val
当我在命令行上运行它时,当我给它命令时它不会使用所有CPU内核。 (例如,PRP.delay(cal(a,b,4))
。
我知道celery认为它应该在每个不同的CPU上运行多个任务,但是在1上运行我的任务会产生内存错误。我知道大多数时候多线程修复了。如果不可能迫使Celery拆分任务,我该如何自行拆分?
任务管理器说cmd行的CPU使用率约为19.5%。 Celery说它应该在所有4个核心上运行(并发:8(prefork))但它没有。
我使用的是Windows 10。
有什么建议吗?谢谢你能给我的任何帮助!