Я пытаюсь сделать несколько запросов асинхронными и получить ответ обратно, я использую concurrent.futures
, чтобы сделать это, но внутри моей функции, используя current_app
, что из flask
, и я всегда получаю эту ошибку:
RuntimeError: Working outside of application context.
Я не знаю, как решить это. Может кто-нибудь помочь, пожалуйста?
Ниже мой код:
run.py:
import concurrent.futures
from flask import current_app
from http_calls import get_price, get_items
def init():
with current_app._get_current_object().test_request_context():
with concurrent.futures.ThreadPoolExecutor(max_workers=20) as executor:
futs = []
futs.append(executor.submit(get_price))
futs.append(executor.submit(get_items))
print([fut.result() for fut in concurrent.futures.as_completed(futs)])
init()
http_calls.py
from flask import current_app
function get_price():
url = current_app.config['get_price_url']
return requests.get(url).json()
function get_items():
url = current_app.config['get_items_url']
return requests.get(url).json()