Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多次运行php脚本_Php_Javascript_Mysql_Ajax_Continuous - Fatal编程技术网

多次运行php脚本

多次运行php脚本,php,javascript,mysql,ajax,continuous,Php,Javascript,Mysql,Ajax,Continuous,我正在寻找一种从浏览器多次运行php脚本的方法。以下是场景: 我正在从一系列从100兆到2兆不等的大文件构建一个mySQL表。平均而言,表中大约有150000条记录 我现在通过一个javascript函数来实现这一点,该函数对PHP脚本进行AJAX调用。如果成功,函数将设置一个超时来运行自己,并触发AJAX调用来运行第二个100 我的想法是,在函数再次运行之前,给它一秒钟关闭 这不太好用。整个函数本身可以工作,但在性能方面相当缓慢 当我一次不做100条记录,也不使用javascript,只使用P

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

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

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

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

这不太好用。整个函数本身可以工作,但在性能方面相当缓慢

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


我知道连续运行的javascript正在疯狂地消耗内存和性能,我只是想知道是否有人对如何在浏览器上反复运行PHP脚本有什么想法。在这一点上,cron不是一个选项

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

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

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

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

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


谷歌“Ajax队列”搜索你觉得有用的代码,或者我可以发布我的代码,这就是jQuery

最大的问题可能是Javascript。AJAX调用有巨大的开销,您不能启动后台PHP进程通过主页加载运行脚本,然后使用AJAX进程轮询更新(如果需要显示它们)。如果没有,后台处理就足够了。你能澄清什么是超时吗?那是假设作业可以估计在1分钟内运行,对吗?:)这看起来可能是可行的解决方案。谢谢你的帮助!运行时间是目前最大的问题。有时我正在构建的数据库太大,脚本无法在30秒内构建,这就是为什么我需要一次构建100条记录。