多处理任务分离

2024-04-18 11:43:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个不同的任务要在进程之间分配。我有一个任务,它包括从url检索响应,并将响应写入Queue(多处理队列,而不是线程),我希望有几个进程并行处理。你知道吗

我还有另一个任务,它等待Queue有响应数据,从中检索响应,并写入文件。我想有一个过程来处理这个。你知道吗

问题是,如果我启动一个进程池来处理这些url,那么在所有进程完成之前,编写进程不会启动。如何启动进程池以命中url并启动进程同时/逐个地写入文件?你知道吗

我的代码:

CSV = CHANNEL + ".csv"
    response_queue = Queue()

    urls = []
    for row in read_channel_data(CSV):
        url = "https://some_domain/%s" % row[1]
        urls.append(url)

    # This process will start and wait for response_queue to fill up inside func
    write_process = Process(target=func, args=(response_queue,))
    write_process.start()
    write_process.join()

    # This never starts
    pool = Pool(processes=PROCESSES)
    pool.map_async(get_data, urls)
    pool.close()
    pool.join()

Tags: 文件csvurlfordataqueue进程response