答えて

2

「並列に」あなたが意味する「非同期に実行しまう」ことであれば、これを試してみてください。

async def fetch_url(x): 
    if isinstance(x, list): 
     return await asyncio.gather(*[fetch_url(url) for url in x]) 

    return parsed_url(x) 
+0

は、それが内部的に非同期的に自分自身を呼び出すことが可能である機能の正常な機能を持つことは可能ですか?つまり、上記のコードでは、fetch_urlはコルーチンであり、単一のURLがフェッチする必要がある場合でもループ内で実行する必要があります。この関数を常に呼び出し可能にする方法はありますか?内部的には非同期で理想的には再帰的ですか? – Greg

+0

'fetch_url(url)'はそれがクルーチンであることを意味します。 asyncioの代わりに、 'concurrent.futures'を考慮したいかもしれません。 – Udi

+0

'concurrent.futures'を使って1つのスレッドで非同期タスクを実行する方法はありますか? AFAIK 'concurrent.futures'は、マルチスレッド(' ThreadPoolExecutor')またはマルチプロセッシング( '' ProcessPoolExecutor')の使用を必要としますか? – Greg

関連する問題