2013-03-15 68 views
-1

我制作了一个PHP脚本,它可以从Twitter获取推文并将它们保存到文件中以供使用(如JSON)。 问题是,当我执行脚本时,我只收到一次推文,但我想每隔4-5分钟阅读一次。PHP每X分钟执行一次动作

我查看了sleep,但这只是延迟浏览器并执行一次操作。 我想要执行 4分钟,而不是一次延迟一次。

我查看了cron,但是我要运行我的应用程序的服务器不允许使用cron。

TL; DR:任何人都知道在第一次执行后每隔X分钟执行一次php脚本的好方法?

+1

cron是某种类似的唯一实用解决方案。 – 2013-03-15 08:31:52

+1

你别无选择,只能在这里使用cron或类似的东西。 PHP本身没有提供。 – Eric 2013-03-15 08:32:43

+0

服务器上没有crons是一个交易断路器。 PHP需要crons。 – 2013-03-15 08:34:42

回答

2

最好的办法是安排一个任务,每x分钟调用一次PHP页面,而不是试图保持线程打开。看看CRON JOB

如果您使页面可公开访问,则不需要从服务器执行计划任务。

+0

请再次阅读我的问题:“我查看了cron,但是我将运行我的应用程序的服务器不允许使用cron。” – Parrotmaster 2013-03-15 08:31:49

+0

我应该添加CRON作业并不需要在该服务器上。你可以公开它并从任何地方调用它。甚至可以在您的本地PC上设置一个计划作业来执行浏览器,并将地址作为参数传入。 – DaveHogan 2013-03-15 10:25:34

1

您可以设置一个Web监控服务(有些是免费的,比如Pingdom),每隔X分钟向您的页面发出一次HTTP请求,这应该可以做到。

1

有些提供商只为您提供运行cron作业。看看他们,他们可以每x分钟调用一次你的php脚本。

0

你做任何事情,使无需cron这项工作是一个破解。

可以

while (1) { 
    process(...) 
    sleep(4*60) 
} 

但是你会碰到与PHP的执行时间限制的问题。

也许这是一个选项,让脚本执行一次动作,并让它每4分钟从一个支持cron的主机调用?

0

我已经设法自己解决这个问题。如我的问题所述,Javascript和Jquery也是可行的解决方案。 我用一个setInterval在我的twitter.php文件上每X分钟执行一次$ .get。

+0

但是,您需要始终保持此浏览器窗口打开。用cron你可以让它在没有可见UI的背景下运行。 – DaveHogan 2013-03-15 10:27:05

+0

@DaveHogan这不是一个可行的解决方案,因为我无法使用cron,无论它的工作性能如何。 – Parrotmaster 2013-03-15 10:59:15

+0

我还是不明白你为什么不能使用cron。你主持人不允许,这很好,我明白。我在回答中想说的是,您可以在世界的任何地方使用另一台PC,以在指定的时间访问您的页面。 – DaveHogan 2013-03-15 11:04:21