轮询Web服务的最佳方式(例如,对于Twitter应用程序)

5 python twitter polling

我需要轮询一个Web服务,在这个例子中是twitter的API,我想知道这个主题的传统智慧是什么.我不确定这是否重要,但我总是发现过去有用的反馈.

我想出了几个场景:

  1. 查询过程每X秒开始一次,例如cron作业运行python脚本

  2. 一个过程在每次迭代时不断循环和查询,例如......好吧,这里是我进入不熟悉区域的地方.我只是运行一个不会结束的python脚本吗?

谢谢你的建议.

ps - 关于twitter的详细信息:我知道它会发送关于跟踪和直接消息的电子邮件,但有时可能需要解析@replies的灵活性.在这些情况下,我相信民意调查一如既往.

pps - twitter将机器人限制为每60分钟100次请求.我不知道这是否也限制了网页抓取或RSS阅读量.任何人都知道被列入白名单有多容易或多难?

再次感谢.

S.L*_*ott 5

"我只是运行一个不会结束的python脚本吗?"

这个陌生的领域怎么样?

import time
polling_interval = 36.0 # (100 requests in 3600 seconds)
running= True
while running:
    start= time.clock()
    poll_twitter()
    anything_else_that_seems_important()
    work_duration = time.clock() - start
    time.sleep( polling_interval - work_duration )
Run Code Online (Sandbox Code Playgroud)

这只是一个循环.

  • 现在你需要一个cron作业来确保这个脚本是活着的. (3认同)

Bob*_*toe 0

您应该有一个类似于 Ping 或 Heartbeat 页面的页面。如果您有另一个进程“触发”或点击该页面,通常您可以在网络主机的控制面板中执行此操作,或者如果您具有本地访问权限,则可以使用 cron。然后这个脚本可以统计它在数据库或某些数据存储中轮询的频率,然后您可以根据实际需要轮询服务,当然将其限制为提供商的限制。你绝对不想(当然也不想依赖)“不会结束”的 python 脚本。:)