当使用ThreadPoolExecutor Python失败时,如何在任务队列中称呼任务

问题描述

我正在使用ThreadPoolExecutor软件包中的concurrent.futures,并希望同时执行批处理请求。

from concurrent.futures import ThreadPoolExecutor
from concurrent.futures import as_completed
import requests


BASE_URL = "api/{param_id}"

def get_result(param_id):
    url = BASE_URL.format(param_id=param_id)
    s = requests.get(url)
    return s
    # if task Failed here,how can I reput it into task_queue again until it 
    # return expected result successfully

with ThreadPoolExecutor(max_workers=5) as executor:
    obj_list = []
    result_list = []
    for page in range(1,15):
        obj = executor.submit(get_result,page)
        obj_list.append(obj)

    for future in as_completed(obj_list):
        data = future.result()
        result_list.append(data)

ThreadPoolExecutor本身在内部实现了queue。我的问题是,由于某些网络超时问题或其他意外问题而失败,如何重新将任务get_result放入此queue

非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)