Python 如何为工作线程创建管理器?
该代码适用于单个“管理器”,它基本上会启动一些到服务器的HTTP访问。但我撞到了一堵砖墙 现在如何创建两个管理器,每个管理器都有自己的下载\u Dashlet\u作业对象和tcp\u池\u对象?本质上,管理者将指挥自己的工人从事两项不同的工作。对于学习Python类来说,这似乎是一个非常好的难题Python 如何为工作线程创建管理器?,python,multithreading,threadpool,pool,Python,Multithreading,Threadpool,Pool,该代码适用于单个“管理器”,它基本上会启动一些到服务器的HTTP访问。但我撞到了一堵砖墙 现在如何创建两个管理器,每个管理器都有自己的下载\u Dashlet\u作业对象和tcp\u池\u对象?本质上,管理者将指挥自己的工人从事两项不同的工作。对于学习Python类来说,这似乎是一个非常好的难题 import workerpool from urllib3 import HTTPConnectionPool class Download_Dashlet_Job(workerpool.Job):
import workerpool
from urllib3 import HTTPConnectionPool
class Download_Dashlet_Job(workerpool.Job):
def __init__(self, url):
self.url = url
def run(self):
request = tcp_pool_object.request('GET', self.url, headers=headers)
tcp_pool_object = HTTPConnectionPool('M_Server', port=8080, timeout=None, maxsize=3, block=True)
dashlet_thread_worker_pool_object = workerpool.WorkerPool(size=100)
#this section emulates a single manager calling 6 threads from the pool but limited to 3 TCP sockets by tcp_pool_object
for url in open("overview_urls.txt"):
job_object = Download_Dashlet_Job(url.strip())
dashlet_thread_worker_pool_object.put(job_object)
dashlet_thread_worker_pool_object.shutdown()
dashlet_thread_worker_pool_object.wait()
首先,
workerpool.workerpool(大小=100)
创建100个工作线程。在下面的评论中,你是说你想要6个线程?你需要把它改成6
为了创建第二个池,您需要创建另一个池。您还可以创建另一个作业类,如果愿意的话,只需将这种不同类型的作业添加到同一个池中。我查看了芹菜……这很有趣。我看到它有很大的潜力,但可能对我所做的工作来说是过度的。我基本上只是在为服务器编写一个负载测试(也就是说,服务器一次支持200多个客户端)。