我目前正在MySQL中保存一些Twitter数据。我的主机只允许我每小时运行一次cron作业,所以为了半模拟实时结果,我复制了相同的文件6次,并且每10分钟运行一次(主机让你控制每小时的偏移量)。我认为这是愚蠢的。
是否有一些我可以了解的机制会以我的方式推送数据?欢迎任何想法或建议。
(我已经远离了每次查看页面查询他们的服务器;我知道这很糟糕的做法)
答案 0 :(得分:1)
如何通过在客户端(家庭系统)添加到cron来访问服务器上托管的网页(进而执行程序):
/usr/bin/curl http://yourserver.com/twitter
否则,您可以每小时运行以下bash脚本:
#!/bin/bash
for (( i = 0; i < 6; i += 1 )); do
/usr/bin/curl 'http://yourserver.com/twitter'
sleep 600
done
答案 1 :(得分:1)
您可以理智地提取您的请求触发的Twitter数据。它有点深奥,但基本上你将锁定数据存储在一个表中,以确保每N分钟(或任何你需要的时候)只有一个请求从twitter轮询数据。例如:
要获得速度,请确保您的锁定表位于内存中或使用memcached。当然,如果你可以使用memcached,你可能无论如何都可以完全控制cron。 :)
答案 2 :(得分:0)
一个相对简单的解决方案是在另一台计算机上运行cron作业。它会向Twitter发出请求,然后对服务器上的指定页面执行HTTP POST(例如http://foo.com/latestTwitterData)。当然,您可能希望进行身份验证以防止随机垃圾邮件发送给您。
我不知道这对你的情况是否合理。
答案 3 :(得分:-1)
每隔一秒左右运行代码非常容易。
// pseudocode
while(1) {
// do request
// sleep 1 second
sleep(1);
}
答案 4 :(得分:-1)
为什么不在你的程序中放一个while循环,然后在你需要更新之间的N秒之间休息?然后你可以在59分30秒后死亡。
或者,要优化复制多个文件,可以在单个cron行中为程序添加多个调用。类似的东西:
./prog.pl; sleep 60; ./prog.pl