多进程异步非堵塞的调用问题急
程序代码:
time.sleep(3) queue = Queue() New_start = input(('导入批量url文本:')) levels = int(input(('设置扫描等级:'))) countss = int(input(('设置扫描进程数:'))) p = multiprocessing.Pool(countss) list_ = list(set( [x.replace('\n', '') if x.startswith('http') else 'http://' + x.replace('\n', '') for x in open(New_start, 'r', encoding='UTF-8').readlines()])) for i in list_: queue.put(i) print(i + " -------> 加入队列 当前队列总任务数:%s" % queue.qsize()) while not queue.empty(): # 子进程原来跑 进行测试 p.apply_async(get_url_sql, args=(queue.get(), levels)) p.close() p.join() print("当前队列中的任务数为:%s" % queue.qsize()) while True: if queue.qsize() < 10: opm = OPMysql() sql = "select url from url_index limit 1,20" res = opm.op_select(sql) _list = [i[j].replace('\r\n', '').replace(' ', '') for i in res for j in i] url_list = list(set(_list)) for i in url_list: time.sleep(0.5) queue.put(i) print(i + " -------> 加入队列 当前队列总任务数:%s" % queue.qsize()) opm.dispose() # 释放资源
哥哥们帮帮忙 现在的情况是这样的。。。 自己做了一个下午了
我自己写的想实现多进程异步 子进程取出队列的url跑sql 主进程就是数据库的交互把url放入队列中 但是这样写好像不行 是哪里错了吗
[此贴子已经被作者于2019-9-26 16:54编辑过]