我希望设置一个HTTP服务器,它接受一些输入,然后应用程序需要同时发送多个HTTP请求(到另一个服务器)。对此最好的方法是什么?
如果我使用Twisted框架,我还需要使用线程吗?
答案 0 :(得分:2)
您自己无需担心线程或线程安全问题。执行HTTP请求的大部分时间都在等待响应,此时Python可以安全地并行运行其他代码。使用Python的一些库和内置函数来管理并发I / O等待。
你可以使用gevent。 Twisted具有类似的功能,但学习使用可能更复杂。还有内置于Python的multiprocessing.dummy功能。
如果您使用Twisted之外的其他内容,您可以并且应该使用请求库来执行上述的HTTP客户端内容 - 您可能需要使用grequests,这是一个绿色线程的变体,做非阻塞I / O.
答案 1 :(得分:2)
如果使用Twisted网络引擎,则无需使用线程。只需发出请求并等待响应,方法是添加将在可用时执行的回调。
对于使用Twisted进行HTTP请求的简单方法,您可能需要考虑Treq,一个requests启发的Twisted HTTP客户端便利层。
答案 2 :(得分:0)
线程或扭曲都可以做到这一点。
即。如果你使用twisted,你将不需要使用线程。
请记住,某些服务器对单个IP地址允许的连接数有限制。