背景:我目前正在尝试在我的工作中开发一个监控系统。所有需要监控的节点都可以通过 Telnet 访问。建立 Telnet 连接后,系统需要在节点上执行几个命令并处理输出。
我的问题是创建新连接和运行命令都需要时间。它需要应用程序。建立连接需要 10 秒(TCP 连接会立即建立,但需要运行一些命令来准备连接以供使用),并且运行所需命令的时间几乎相等。
所以,我需要想出一个解决方案,让我在节点上执行这 10 秒长的命令中的 10-20 条,而总共花费的时间不会超过 1 分钟。我正在考虑创建一种连接池,我可以将命令发送到它,然后它可以并行执行它们,将它们划分为可用的 Telnet 会话。我试图找到类似的东西,我可以使用(甚至只是看看以获得一些理解),但我找不到任何东西。
我正在使用 Python 在 Ubuntu 上进行开发。任何帮助,将不胜感激!
编辑(更新信息)*:@Aya @Thomas:更多信息。我已经有一个可以运行的 Python 解决方案,但是管理代码变得越来越困难。目前我正在使用您建议的相同方法,使用每个连接线程。但是,问题是每次与节点建立连接时都会有 10 秒的延迟,并且每次迭代我需要为每个节点建立至少 10 个连接。每次迭代的时间限制是60s,所以每次都建立一个新的连接是不可行的。它需要在启动时为每个节点打开 10 个连接并维护这些连接。
我正在寻找的是能够为这样的事情指出良好架构示例的人?