2013-09-24 56 views
0

我需要从另一个站点运行PHP脚本,而不使用CRON,以便每当有人来到或刷新页面时都会调用该脚本。每次用户刷新页面时都要从URL运行PHP脚本

该脚本将执行某种更新我的数据库,它是可能的,它需要数十秒钟,所以我需要运行PHP脚本,它也不会限制网站访问者,从那里的脚本叫做。

但我不想使脚本真正开始了每天有人访问或刷新页面时,我想限制一分钟,所以,在调用脚本之前,我想投入到MySQL数据库的当前时间某个人(谁是谁 - 谁是第一个)到达或刷新该页面,并且在只有更新该页面的人首先比较当前时间与来自最后一次调用脚本的数据库,并且如果差异是少于一分钟,因此脚本不会调用,但是如果在数据库再次将当前时间写入最后一次脚本执行时执行超过一分钟。

我不需要运行脚本的任何响应。 重要的是,它不应该影响页面加载用户,它应该被调用。

感谢您的帮助

+0

远程站点上的脚本,但更新你的数据库?有点困惑 – 2013-09-24 03:48:59

+0

该脚本位于同一台服务器上,这意味着它与另一个域位于不同的文件夹中。像'web1/index.php'调用'web2/script.php'。 – Edoras

+1

的我只想用EXEC,调用它在后台'EXEC(“nohup的PHP的WEB2.0 /运行script.php>的/ dev/null的2> &1 &");'' – 2013-09-24 03:58:50

回答

0

好吧,如果JavaScript是不是你可以做PHP分叉多一点研究的一个选项。它基本上是Thread的php版本,但更受限制。所以你实际上可以派生一个PHP子进程在后台运行,而主进程仍然在做通常的事情。所以它不会影响你的日常工作。

http://php.net/manual/en/function.pcntl-fork.php

+0

好的,我并不反对使用JS,尽管我更喜欢所有在PHP代码中完成的操作,但我所关心的只是调用PHP脚本并让它执行。这意味着在那段时间内,任何用户都将能够中断该站点更新的传输,或者离开该站点,并且此时我不希望在执行这个站点的过程中被中断脚本,如果可能的话?作为CRON工作的替代品。一个PHP脚本,将更新表中的大量数据,所以我想在写入MySQL触发时间时要处理一分钟的延迟。 – Edoras

1

你可以做背景jQuery的AJAX调用后的页面加载,所以用户不会等待脚本完成加载页面

http://api.jquery.com/jQuery.ajax/

不过,我不知道想想你想做的方式是正确的。这是可能的,但我不知道它是否有用。

你可以将你的脚本分成不同的任务吗?所以你可以在加载页面之前完成它们,并且用户不会注意到任何区别。

+0

这仍然会阻止任何后续请求... –

+0

是的,用AJAX调用它并不是做到这一点的方法。他必须找到另一种方式。 –

相关问题