我试图在 python 中创建一个轮询脚本,该脚本在另一个 python 脚本启动时启动,然后继续向该脚本提供数据。
我显然可以写一个无限循环,但这是正确的方法吗?我可能会失去对函数如何工作以及一个小时内应该调用多少次函数的控制。
编辑:
我想要完成的是轮询 twitter 的 REST API 并获得新的提及和关注我的人。我显然不能继续轮询,因为我每小时会用完 API 请求。因此,问题。此轮询器会将新的提及和关注者 ID/用户发送到将侦听任何此类更新的主脚本。
我试图在 python 中创建一个轮询脚本,该脚本在另一个 python 脚本启动时启动,然后继续向该脚本提供数据。
我显然可以写一个无限循环,但这是正确的方法吗?我可能会失去对函数如何工作以及一个小时内应该调用多少次函数的控制。
编辑:
我想要完成的是轮询 twitter 的 REST API 并获得新的提及和关注我的人。我显然不能继续轮询,因为我每小时会用完 API 请求。因此,问题。此轮询器会将新的提及和关注者 ID/用户发送到将侦听任何此类更新的主脚本。
我强烈建议研究Twisted,它是使用反应器模式的最流行的异步框架之一。
您正在寻找的“无限循环”实际上是 Twisted 实现的一种应用程序模式,用于异步响应事件,而且您自己的滚动几乎没有意义。
Twisted 主要用于网络需求,但它有一个LoopingCall
接口来设置您需要的那种功能。使用核心 Twisteddeferred
作为您的请求模型,您可以设置一个长轮询服务器,该服务器可以执行您需要的那种条件网络测试。它最初可能有点吓人,但是一旦你了解了需要继承的核心组件(工厂、反应器、协议等),它就会更容易可视化你的问题。
这也可能是一个很好的教程,开始了解“推”模型的基础知识:http: //carloscarrasco.com/simple-http-pubsub-server-with-twisted.html