如何测量异步事件循环的长度?

How can I measure the length of an asyncio event loop?

我有一个应用程序在安排一些任务后调用 loop.run_forever()。这些任务将连接到 Web 服务,然后根据来自这些服务的输入在循环中安排新任务。

我想找到一种跟踪循环的方法,以检查是否有正在创建但从未完成的任务。理想情况下,我会定期测量循环中的任务数量并将其写入文件,或者通过 http 调用使其可用。

您可以收集所有任务,然后对它们进行计数,计算 "loop length" 的一些其他指标或执行检查。

asyncio.Task.all_tasks(loop=loop)