我开发了一个python脚本,可以将信息发送到wordpress站点。
在wordpress站点中,我有一个插件,可以接收数据并对其进行处理。处理所有数据大约需要30分钟到几个小时,其中包括更新woocommerce商店的目录。
插件不时停止,没有任何错误,有时完成时没有问题。这个过程花了一个小时就完成了,有时几分钟后就停止了。
我与主机进行了交谈,在apache的错误日志中找不到任何内容,我有一个由插件生成的日志文件,该文件保存了它正在进行的所有处理,以及来自PHP的通知、警告和错误,它只是停止写入日志,没有明显的原因。
我在php中设置了\\u time\\u limit和ignore\\u user\\u abort,但python脚本似乎有时会与Web服务器失去连接,之后php脚本有时会继续运行,有时会停止。
我认为这可能是某种连接中断,因为没有输出发送到浏览器。我用ob\\u flush和flush做了几个测试,看看是否可以一次将内容发送到浏览器块中,以避免连接丢失。
我的#1个问题是,我如何使用wordpress和/或woocommerce缓冲区、输出压缩等功能,以便将输出发送到浏览器?我现在有一段时间有一个回声,里面有一个睡眠,ob\\u flush和flush,但内容只在这段时间后打印出来。
我的#2问题是征求意见,了解是什么原因导致了这种情况,因为另一个人可能也面临同样的问题。
谢谢你的帮助。
SO网友:Miguel Mesquita Alfaiate
为了防止其他人遇到同样的问题,下面是我能想到的最强大的禁用功能,它似乎如预期的那样工作:
ini_set(\'max_execution_time\', 0);
set_time_limit(0);
ignore_user_abort(true);
ini_set(\'output_buffering\', \'off\');
ini_set(\'zlib.output_compression\', false);
ini_set(\'implicit_flush\', true);
ob_implicit_flush(true);
while (ob_get_level()) {
ob_end_flush();
}
flush();