Flask 2.0で非同期実装をしようと当サイトのコード(下記に抜粋)を参考に実装してみています。
非同期処理の実装に慣れていないというのもあり、色々ためしてはいますが、なぜ下記のようなエラーメッセージがでるのでしょうか?
また、非同期処理で4秒以内にすべての処理がおわるように実装したいと思っています。
もし、お気づきの点ありましたらご指摘いただけると助かります!
実行したコード
python
from flask import Blueprint import asyncio import time app = Blueprint("app", __name__) async def async_get_data(name, sec): print(f"start {name}") await asyncio.sleep(sec) print(f"end {name}") return f"{name}/{sec}" @app.route("/data") async def get_data(): await async_get_data("A", 2) await async_get_data("B", 1) await async_get_data("C", 3) await async_get_data("D", 1) await async_get_data("E", 4) loop = asyncio.get_event_loop() result = loop.run_until_complete() return result
エラーメッセージ
$ flask run * Serving Flask app 'app.py' (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) start A end A start B end B start C end C start D end D start E end E [xxx] ERROR in app: Exception on /data [GET] ... ... ... result = loop.run_until_complete() TypeError: run_until_complete() missing 1 required positional argument: 'future'
参考にしたコード
python
import asyncio async def async_get_data(): await asyncio.sleep(1) return 'Done!' @app.route("/data") async def get_data(): data = await async_get_data() return data
(参照URL)
まだ回答がついていません
会員登録して回答してみよう