以更快的方式在python中自动执行重复任务

时间:2016-05-12 06:28:23

标签: python automation

我有一个特定的查询,我需要以更快的方式完成任务。

假设我编写了一个程序来ping Python中的10000个设备。 如果我依次为每个设备进行操作(例如为了计算),1个设备需要大约一分钟(我知道它没有)用于ping。

如果我运行脚本,在启动脚本后需要10000分钟才能完成脚本。

有没有办法,我可以在比上面更短的时间内完成相同的事情???如果是,我可以阅读有关这方面的内容以及专家开发人员的任何提示。

我是python编程的新手,任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以使用多线程。为此,您可以使用threading模块。它可能不是这项工作的最佳选择,但它非常好,默认情况下是Python。基本思想是为每个ping创建一个线程,该线程在您继续执行下一个任务时执行。有很多很棒的教程,所以我希望你能开始提供我提供的信息。

答案 1 :(得分:1)

在~10,000范围内,您希望开始在线程/进程上寻找某种异步解决方案。

使用异步解决方案将在此规模上表现更好;您的PC可能无法处理10,000个线程/进程(即没有足够的资源),但使用coroutes / greelets可以正常工作。

如果您可以执行Python 3.4 / 3.5,请结帐aiohttp

如果您遇到2.7,请尝试grequest

这两种解决方案都允许您迭代并发送ping,而无需等待远程服务器响应。一旦你戳了所有的服务器,你就可以再次迭代来处理它们的响应。

相关问题