2016-07-13 23 views
1

メソッドパラメータを使用せずに非同期メソッド呼び出しから別のコンテキスト呼び出しにコンテキストを渡すにはどうすればよいですか?Python 3.5で非同期メソッド呼び出しの間でコンテキストを渡す方法は?

特定のコールメソッドフローのすべてのログメッセージを簡単にトレースできるように、種類のフローIDでログメッセージを充実させる機能が必要です。

私はPythonの非同期型キーワード(awaitキーワード)(Python 3.5.x)を使用します。

答えて

0

カスタムを設定して問題を解決しました。task factoryタスクごとに(非同期呼び出しあたりのコンテキストと比較して)コンテキストがあれば十分であることが判明しました。

+0

興味深い、それについて知りませんでした:) – argaen

1

Python 3.7で導入されたContext Variablesを使用する必要があります。としてPython < 3.7のpolyfillがあります。

前の答え:

あなたはtasklocalsaiolocalsを見てみたいことがあります。

+0

両方のプロジェクトのドキュメントは有望です。 – rwitzel

+0

より効率的な '' Task''実装を提供するサードパーティ製のループを使用するときには特に難しいと感じました。 最近私が行ったことがあります:https://github.com/fantix/gino/blob/master/gino /local.py – fantix

+0

ああ、https://www.python.org/dev/peps/pep-0550/を待ってください! – fantix

0

私はaiotask-context packageに取り組んでいます。これは、タスク間でコンテキストを渡す本当に簡単な方法です(awaitまたはyield fromと呼ばれます)。あなたがまだあなたのアイデアを使用することができますパッケージを使用するwan'tしない場合:)。

私はensure_futureコールのためにそれを伝播する方法についても取り組んでいます。

関連する問題