【发布时间】:2020-05-22 05:36:45
【问题描述】:
如何调用多个进程?
以下代码适用于 processes = 1。
定义:
def origin_and_url_from_url(url):
ori_url = url.strip()
cursor = connection.cursor()
cursor.execute("SELECT DISTINCT url, id FROM origin where url = %s",[ori_url])
rows = cursor.fetchall()
cursor.close()
for a_row in rows:
with open('TopListwith100CardsWithID.csv','a') as file:
file.write(str(a_row[1])+ ", ")
file.write(str(a_row[0]))
file.write('\n')
呼叫:
with open('SEMethodologies/TopListwith100Cards.csv', 'r') as f:
reader = csv.reader(f)
top_list = list(reader)
p = multiprocessing.Pool(1, initializer, ())
logger.info("Pool Started for ids")
results = p.starmap(origin_and_url_from_url, top_list)
print(results)
p.close()
但是如果我通过更改此行 p = multiprocessing.Pool(2, initializer, ()) 来调用两个进程,它会显示此错误 psycopg2.OperationalError: SSL error: decryption failed or bad record Mac
【问题讨论】:
-
每个进程都必须创建自己的连接。
-
解释为什么使用相同连接对象的多处理不起作用 - virtualandy.wordpress.com/2019/09/04/…
标签: python postgresql multiprocessing psycopg2