2017-02-03 12 views
2

私はいくつかのタスクをスケジュールした後にloop.run_forever()を呼び出すアプリケーションを持っています。これらのタスクはWebサービスに接続し、それらのサービスからの入力に基づいてループ上で新しいタスクをスケジュールします。asyncioイベントループの長さはどのように測定できますか?

私は、完了していないタスクが作成されているかどうかをチェックするループを追跡する方法を見つけたいと思っています。理想的には、私は定期的にループ内のタスクの数を測定し、ファイルに書き込んだり、http呼び出しで利用可能にしたりします。

+0

データをデータベースに保存し、タスクのインスタンスを監視/ポーリングできます。私はそれを行うための 'ネイティブ' Pythonの方法を見つけることを嬉しく思うでしょう。 –

+0

これは良い考えですが、私のアプリケーションの依存関係の中にループ上にタスクを入れている他のコードもあります。 –

答えて

2

すべてのタスクを収集し、カウントし、「ループ長」の他のメトリックを計算したり、検査を実行することができます。

asyncio.Task.all_tasks(loop=loop) 
関連する問題