問題
コルーチンでasyncio.ensure_future
を使用する場合、詳細な関数トレース情報は表示されません。
解決
ensure_future
から作成された Future は、作成されたのと同じコルーチン内で待機する必要があります。たとえば、 Beforeセクションでは、 await
がensure_future
とともに存在しないため、情報が欠落します。
Before:
import asyncio
async def foo(): ensure_future(bar())
async def bar(): await asyncio.sleep(0.5)
後:
import asyncio
async def foo(): await ensure_future(bar())
async def bar(): await asyncio.sleep(0.5)