多设备和服务器通过python实现批量自动化下载

需求:有80台设备,2台服务器,每台服务器只允许同时5个连接。

import queue
import threading, time

def rest(q_c, q_s):
    while not q_c.empty():  #检测客户端的序列是否已经为空
        q_client = q_c.get()  #提取客户端
        q_server = q_s.get()  #提取可用的服务器
        print('%s start to download from %s. Please wait for 30s.' % (q_client, q_server))
        time.sleep(30)
        print('%s done.' % q_client)
        q_s.put(q_server)  #下载完成后,把可用的服务器归还序列中


if __name__ == '__main__':
    q_client = queue.Queue() #客户端序列
    for i in range(1,81):
        q_client.put('dev_%02d' % i)

    servers = ['ser_1', 'ser_2'] #服务器列表
    max_conn = 5  #最大连接数
    q_server = queue.Queue()  #服务器序列
    for ser in servers:
        for i in range(max_conn):
            q_server.put(ser)

    max_thread = len(servers) * max_conn #服务器数x最大连接数=同时运行数量
    ts = []
    for i in range(max_thread):
        t =  threading.Thread(target=rest, args=(q_client, q_server))
        t.start()
        ts.append(t)
    for t in ts:
        t.join()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值