多次运行php脚本

时间:2012-03-22 18:54:45

标签: php javascript mysql ajax continuous

我正在寻找一种从浏览器多次运行php脚本的方法。这是场景:

我正在从一系列大型文件中构建一个mySQL表,范围从100 megs到2 gigs。平均而言,表格中将有大约150,000条记录。

我现在通过使用javascript函数对PHP脚本进行AJAX调用来实现这一目的。成功时,该函数设置超时以自行运行并触发AJAX调用以运行第二百个。

我在这背后的想法是在它再次运行之前让函数第二次关闭。

这不太好用。整个功能本身起作用,但在性能方面它很慢。

当我一次不做100条记录并且没有使用javascript时,只有PHP,我可以在超时之前获得大约15,000条记录。现在它需要大约10分钟才能完成相同数量的记录。

我知道连续运行的javascript正在疯狂地释放内存和性能,只是想知道是否有人对如何在浏览器中反复运行PHP脚本有任何想法。在这一点上,克朗不是一种选择。

4 个答案:

答案 0 :(得分:1)

其被称为(异步)工作/工作队列,似乎您需要探索Gearman

答案 1 :(得分:0)

难道你不能让PHP脚本本身重复多次这个功能吗?如果问题是函数有时会失败或超时,你能否在脚本中捕获异常?或者您是否有一个不可避免且完全致命的错误,真的需要使用外部监护人?

答案 2 :(得分:0)

我遇到了类似的情况......我的解决方案是使用ajax队列。基本上,您将一系列ajax调用提供给一个队列,该队列按顺序运行它们,从上一次从服务器返回成功后开始下一个。

设置超时可能会遇到在服务器完成最后一次之前进行下一次ajax调用的情况。这可能是导致性能问题的原因。我自己并不喜欢javascript超时,仅仅因为资源过度使用。

Google“Ajax Queue”代码,您会发现有用的代码,或者我可以发布我的代码,这是jQuery。

答案 3 :(得分:-1)

配置cronjob以便每分钟运行一次脚本