如何在Python中创建轮询脚本?

时间:2012-05-17 20:52:47

标签: python

我试图在python中创建一个轮询脚本,该脚本在另一个python脚本启动时启动,然后继续向该脚本提供数据。

我显然可以编写一个无限循环,但这是正确的方法吗?我可能无法控制函数的工作方式以及一小时内调用函数的次数。

编辑:

我想要完成的是轮询Twitter的REST API并获得新的提及和关注我的人。我显然无法继续进行轮询,因为我每小时都会耗尽API请求。因此,问题。此轮询器将新提及和关注者id / user发送到将要收听任何此类更新的主脚本。

1 个答案:

答案 0 :(得分:6)

我强烈建议调查Twisted,这是使用reactor模式的最流行的异步框架之一。

你正在寻找的“无限循环”实际上是一个Twisted实现的应用程序模式,用于异步响应事件,并且几乎没有任何意义来推销自己的。

Twisted主要用于网络要求,但它有一个LoopingCall接口来设置您需要的功能。使用核心Twisted deferred作为您的请求模型,您可以设置一个可以执行所需条件网络测试的长轮询服务器。它可能有点令人生畏,但一旦你理解了你需要继承它的核心组件(工厂,反应堆,协议等),就可以更容易地看到你的问题。

这也可能是一个很好的教程,可以开始研究“推”模型的基础知识: http://carloscarrasco.com/simple-http-pubsub-server-with-twisted.html