多次运行php脚本


Run a php script multiple times

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

我正在用一系列大文件构建一个mySQL表,这些文件的大小从100兆到2吉不等。平均而言,该表中将有大约150000条记录。

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

我的想法是,在函数再次运行之前,给它一秒钟的时间来关闭它。

这不太好用。整个功能本身是有效的,但就性能而言,它相当慢。

当我不一次做100条记录,也不使用javascript,只使用PHP时,我可以在表超时之前将大约15000条记录放入表中。现在,它需要大约10分钟才能完成相同数量的记录。

我知道持续运行的javascript正在疯狂地消耗内存和性能,我只是想知道是否有人知道如何在浏览器中一遍又一遍地运行PHP脚本。Crons在这一点上不是一个选择。

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

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

我遇到了类似的情况。。。我的解决方案是使用ajax队列。从本质上讲,您将一系列ajax调用输入到一个队列中,该队列按顺序运行这些调用,在上一个调用从服务器返回成功后开始下一个调用。

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

在"Ajax队列"中搜索您觉得有用的代码,或者我可以发布我的代码,即jQuery。

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