2017-02-03 64 views
2

我有一個應用程序在調度一些任務後調用loop.run_forever()。這些任務將連接到Web服務,然後根據這些服務的輸入安排循環上的新任務。如何測量asyncio事件循環的長度?

我想找到一種跟蹤循環的方法來檢查是否有任務從未完成。理想情況下,我會定期測量循環中的任務數量並將其寫入文件,或通過http調用使其可用。

+0

您可以嘗試將數據保留在數據庫中並監視/輪詢任務的實例。我很樂意找到一種「原生」python方式來做到這一點。 –

+0

這是一個很好的想法,但我的應用程序中還有其他代碼,這些代碼也將任務放在循環中。 –

回答

2

您可以收集所有任務,然後對它們進行計數,計算「循環長度」的其他度量或執行檢查。

asyncio.Task.all_tasks(loop=loop)