考虑以下代码示例:
举个例子,
我知道可以只使用
我对 Python 的多进程技术不是很熟悉,到目前为止,我只使用过 pool,因为它是处理数据并行化且无需关键部分的最佳解决方案,因此我可以接受不同的解决方案。
有没有一种干净而直观的方法来做到这一点?
import multiprocessing
import requests
session = requests.Session()
data_to_be_processed = [...]
def process(arg):
# do stuff with arg and get url
response = session.get(url)
# process response and generate data...
return data
with multiprocessing.Pool() as pool:
results = pool.map(process, data_to_be_processed)
举个例子,
Session
被分配为全局变量,因此在创建 Pool
进程后,它将被复制到每个子进程中。我不确定 session 是否线程安全,也不知道如何在 session 中使用池,所以我想为池中的每个进程分配单独的 session 对象。我知道可以只使用
requests.get(url)
而不是 session.get(url)
,但我想使用 session,并且我也考虑使用 requests-html
(https://html.python-requests.org/)。我对 Python 的多进程技术不是很熟悉,到目前为止,我只使用过 pool,因为它是处理数据并行化且无需关键部分的最佳解决方案,因此我可以接受不同的解决方案。
有没有一种干净而直观的方法来做到这一点?
requests.get()
)? - Klaus D.