問題タブ [python-asyncio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3586 参照

python-3.x - Python で asyncio イベント ループを閉じると、最後に例外が発生する

Windows 上の Python 3.4 で asyncio と aiohttp を使用する https 要求の場合、2 つのイベント ループを使用する必要があります。シェル コマンドを実行するための ProactorEventLoop と、HTTPS 要求のためのデフォルトのイベント ループ。残念ながら、ProactorEventLoop は HTTPS コマンドでは機能しません。

次のコードは、新しく作成したデフォルトのイベント ループを使用し、Windows で最後にそれを閉じようとするとどうなるかを示しています。loop.close以下に示すように最後に呼び出すと、最後に例外が発生します。

コメントアウトすると例外が削除されますが、その理由はわかりません。唯一無二

ありがとう、グリーンアージ

0 投票する
3 に答える
2630 参照

python - asyncio.coroutine の繰り返し

私は最近 asyncio をいじっていますが、それがどのように機能するかについて直感をつかみ始めていますが、できていないことがあります。構造が間違っているからなのか、やろうとしていることが意味をなさない理由があるのか​​ はわかりません。

要するに、私は降伏する asyncio.coroutine を反復処理できるようにしたいと考えています。たとえば、次のようなことができるようになりたいです。

ただし、これは asyncio の腸から例外をスローします。私は他のことを試しましfor n in (yield from countdown(5)): ...たが、それも同様に不透明なランタイム例外を与えます。

なぜあなたがこのようなことをしてはいけないのかすぐにはわかりませんが、何が起こっているのかを理解する能力の限界に達しています。

そう:

  • これを行うことが可能である場合、どうすればそれを行うことができますか?
  • それが不可能なら、なぜですか?

この質問が明確でない場合はお知らせください。

0 投票する
1 に答える
5693 参照

django - asyncio による非同期シグナル

私のモデルの後処理はpost_save信号を使用しています:

ルーチンは IO を行うので、this_takes_foreverリクエストをブロックしすぎないように延期したいと考えています。

これは、新しいasyncioモジュールの優れた使用例だと思いました。しかし、私はプロセス全体を理解するのに苦労しています。

次のように信号受信機を適応させることができるはずだと思います:

Providedthis_takes_foreverは、コルーチンにも適合しています。

これは魔法のように聞こえます。そして実際には、次のように停止しますAssertionError

このコンテキストでは、どこからループを開始すればよいかわかりません。誰かがこのようなことを試しましたか?

0 投票する
2 に答える
2609 参照

python - asyncio で奇妙な AssertionError

私はこのコードでタイムアウトによって未来をマークしようとしています:

「タイマー」 loop.call_later は、3 秒後に結果を未来に設定します。動作しますが、例外も発生しています:

この AssertionError は何を意味するのでしょうか? loop.call_later によって行われる未来の設定で何か間違ったことをしていますか?

0 投票する
1 に答える
3372 参照

python - Asyncio でファイルを一覧表示するにはどうすればよいですか?

ブロックせずにファイルのリストを取得できるようにしたいのですが、ドキュメントでそれを行う方法がわかりませんでした。エグゼキュータでこれを行う最良の方法はありますか?

0 投票する
2 に答える
8120 参照

python - Asyncio でのリクエスト - キーワード引数

requestsモジュールでasyncioを使用して、非同期 HTTP 要求を作成しています。

次のような GET リクエストを作成できます。

ただし、リクエストで Basic HTTP Auth (説明はこちら) をサポートする必要があります。

ドキュメントによると、urlauthはどちらも requests.get() の名前付きパラメーターです。

しかし、これを実行すると ( url=''auth = ''の追加に注意してください):

次のエラーが表示されます。

asyncio.run_in_executor() のプロトタイプでは、追加の引数がサポートされています。

requests.get() は、名前付きパラメーター (get、auth など) を明確にサポートしています。どうしたの?