Timeout on Admin-Ajax?

时间:2015-05-12 作者:GavinR

我正在编写插件并使用admin-ajax. 它是一个长期运行的函数,也就是说,它连接到API并在POST中加载。有时可能需要5-10分钟。似乎在1-2分钟后,我的AJAX调用得到了“502(坏网关)”错误响应,而PHP端的工作就在这一时刻停止了。

管理ajax的操作是否超时

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

无论是TCP还是PHP执行时间,总有一个超时(除非您以奇怪的方式配置服务器,否则PHP将终止长时间运行的任务)。

如果你需要做很多工作,你应该:

将其拆分成小块

像regen缩略图这样的插件检索要处理的项目列表,然后快速小批量地查看列表,并在执行过程中跟踪所做的事情。你可以做10分钟的工作,但与其在一个请求中做100万件事,不如在100万个请求中做1件事。

WP CLI不应在前端完成昂贵而冗长的工作。这应该在命令行上完成。This is the best method and recommended.

实现执行所需操作的WP CLI命令,并运行该命令。这将完全绕过PHP执行超时以及可能发生的任何连接超时。如果您的代码有足够的系统资源,则WP CLI命令可能会运行数小时,并在运行后进行清理以防止内存泄漏。如果需要传入数据,请使用参数。

如果您没有CLI访问权限,则使用托管主机服务或共享主机服务,在这种情况下,您应该移动主机(共享主机有问题),或者将站点下载到本地计算机并在本地运行CLI命令,然后上载结果

结束

相关推荐

AJAX在提交表单时不返回任何内容

我在wordpress中工作,在按下submit按钮时,我希望函数通过ajax返回结果,结果应在屏幕上显示为警报。但当我按submit时,什么都没有显示。下面是我的代码Ajax代码(ajaxinsert.js文件)jQuery(document).ready(function(){ //////////////////////////////////////////////////////////// jQuery(\"#addimage\").submit(functi