Flask 2.0で非同期実装をしようと当サイトのコード(下記に抜粋)を参考に実装してみています。
非同期処理の実装に慣れていないというのもあり、色々ためしてはいますが、なぜ下記のようなエラーメッセージがでるのでしょうか?
また、非同期処理で4秒以内にすべての処理がおわるように実装したいと思っています。
もし、お気づきの点ありましたらご指摘いただけると助かります!
実行したコード
python
1 2from flask import Blueprint 3import asyncio 4import time 5 6 7app = Blueprint("app", __name__) 8 9async def async_get_data(name, sec): 10 print(f"start {name}") 11 await asyncio.sleep(sec) 12 print(f"end {name}") 13 return f"{name}/{sec}" 14 15 16@app.route("/data") 17async def get_data(): 18 await async_get_data("A", 2) 19 await async_get_data("B", 1) 20 await async_get_data("C", 3) 21 await async_get_data("D", 1) 22 await async_get_data("E", 4) 23 loop = asyncio.get_event_loop() 24 result = loop.run_until_complete() 25 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
1import asyncio 2 3 4async def async_get_data(): 5 await asyncio.sleep(1) 6 return 'Done!' 7 8 9@app.route("/data") 10async def get_data(): 11 data = await async_get_data() 12 return data
(参照URL)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/20 16:01 編集
退会済みユーザー
2021/06/21 02:12
2021/06/21 10:22
退会済みユーザー
2021/06/21 10:26