Как убить/отменить/остановить запуск будущего исполнителя в Python ThreadPoolExecutor? Future.cancel() возвращает FalsePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как убить/отменить/остановить запуск будущего исполнителя в Python ThreadPoolExecutor? Future.cancel() возвращает False

Сообщение Anonymous »


Я хочу вызвать два API одновременно, используя Python ThreadPoolExecutor (код прилагается). Если какой-либо из этих двух вызовов API отвечает, я хочу прекратить звонить другому. Потому что в моем случае одному из двух API потребуется много времени, чтобы вернуть ответ, и я хочу избежать вызова.

def get_rest_api_response(url): вернуть запросы.get(url) запросы на импорт, ОС импортировать concurrent.futures из concurrent.futures импортировать ThreadPoolExecutor, as_completed с ThreadPoolExecutor(max_workers=4) в качестве исполнителя: f1 = executor.submit(get_rest_api_response, url="REST_API_URL_1") f2 = executor.submit(get_rest_api_response, url="REST_API_URL_2") no_future_is_done = Истина пока (no_future_is_done): если f1.done(): no_future_is_done = Ложь print("f1 готово") вывод = f1.result() print(f2.cancel()) ######------> Ошибка! если f2.done(): no_future_is_done = Ложь print("f2 выполнено") вывод = f2.result() print(f1.cancel()) ######-------> Ошибка! печать(вывод)

Я использую Future.cancel(), но он не работает и возвращает False. https://pd.codechef.com/docs/py/3.4.2/l ... ure.cancel

Есть ли другой способ добиться этого?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»