5

我需要轮询一个 Web 服务,在这种情况下是 twitter 的 API,我想知道关于这个主题的传统智慧是什么。我不确定这是否重要,但过去我一直发现反馈很有用。

我想出了几个场景:

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

  2. 一个过程在每次迭代中不断循环和查询,例如……嗯,这是我进入陌生领域的地方。我只是运行一个没有结束的python脚本吗?

谢谢你的建议。

ps - 关于 twitter 的细节:我知道它会发送电子邮件用于关注和直接消息,但有时可能需要解析@replies 的灵活性。在这些情况下,我相信民意调查是最好的。

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

再次感谢。

4

2 回答 2

5

"Do I just run a python script that doesn't end?"

How is this unfamiliar territory?

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 )

It's just a loop.

于 2009-01-10T00:31:53.767 回答
0

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

于 2009-01-10T00:22:11.103 回答