在python多处理中,可以创建一个由30个进程组成的多处理池,以便在某些ID上处理一些长时间运行的等式。下面的代码在一台8核机器上产生30个进程,load_average从未超过2.0。事实上,30个使用者是一个限制,因为承载it的postgresql数据库的服务器有32个核,所以我知道如果我的数据库能够处理它,我可以产生更多的进程。
from multiprocessing import Pool
number_of_consumers = 30
pool = Pool(number_of_consumers)
我花了时间来安装芹菜,但无法重新创建这30个过程。我以为设置并发性,例如-c
我正在编写一个脚本,它是20,000个任务,每个任务进行一个子进程调用和一个或两个TCP调用。为了避免花费一整天的时间,我使用了Python的新asyncio。
但是,我担心Python在运行脚本时打印出的这些错误:
Exception ignored when trying to write to the signal wakeup fd:
BlockingIOError: [Errno 11] Resource temporarily unavailable
它会打印出一堆,但不会产生任何例外。我以前确实得到了OSError关于Too many open files的消息,并且放弃了与服务
我在目录/backbone/中,它在脚本中有一个main.js文件。我从python -m SimpleHTTPServer目录中运行backbone并在浏览器和控制台中显示它,控制台读取错误$ is not defined并引用一个与我几天前使用本地python服务器处理的文件完全不同的main.js文件。
我对此并不陌生,也不知道发生了什么事。如果你有时间的话,我很乐意给你一些建议。
我有一个测试脚本,它需要打开一个进程(一个Pyro服务器),做一些调用打开的进程获取信息的事情,当所有这些都完成后,需要关闭进程。这都是在临时服务器上进行自动化测试的一部分。
在python 2.6中,您可以这样做:
pyro_server = subprocess.Popen(['python', 'pyro_server.py'])
# Do stuff, making remote calls to the Pyro server on occasion
pyro_server.terminate()
遗憾的是,我在这里工作时被锁定在python2.4中,
我做了一个函数,给出一个带有不同图片的链接的列表,他们下载这些图片。为了加快这个过程,我使用了线程。这是我写的: with ThreadPoolExecutor() as executor:
executor.map(self .__descargar_imagen__, self.links_paginas) 在这里,__descargar_imagen__是一个下载图像的函数,links_paginas是包含所有链接的列表。问题是,由于某些原因,使用该代码时,程序不会等待所有线程完成,因此它只下载部分图像。有没有办法让程序等待,直到所有的线程都被concurrent.future
理论上,如果我有以下代码,我想测试多进程如何同时调用:
import multiprocessing as mp
import time
import numpy as np
def worker(word_id):
print('hello, my word id is {}'.format(word_id))
a = np.random.randint(0, 10)
print(a, 'id {}'.format(word_id))
if 6 < a < 10:
time.sleep(4)