我有一个实时股票网址,这是一个您最后添加SKU号码的网址,如34342323232|23232|2323232|232232
。
所以我编写了一个脚本,从Magento数据库中提取所有项目编号/ Sku,并在URL末尾运行25个Sku,然后使用file_get_contents
获取数据
我已将数组拆分为块,因为网址一次只能处理大约25个。
它在foreach循环中运行,数据库位工作正常,脚本在运行foreach
几次时似乎返回500错误。
我尝试了一些事情,出现max_input_vars等似乎没有帮助。
这将每半小时左右运行并运行1000个产品,是否有更好的方法从URL获取数据?一种不会让服务器崩溃的更快方法吗?
foreach循环代码如下。
$updatedStock = array();
// Split Array in to chunks of 25
foreach(array_chunk($productSkus_single, 25) as $sku_chunk) {
// Add sku string to live url and get contents
$LiveFeedStock = file_get_contents($stockFeedUrl . implode("|", $sku_chunk));
// Turn file contents in to an array and Remove <br/> add to array
$updatedStock[] = array_values(array_filter(explode("<br/>",$LiveFeedStock), 'strlen' ));
}
如果您需要其他代码,我可以提供它,但这似乎是它失败的地方。
我知道cURL,我已经尝试了一些解决方案,但似乎无法让它运作良好,但我再也不能理解它。
我已经通过这里的线程并尝试了大量的解决方案而没有运气。
提前谢谢。
更新
错误日志显示
mod_fcgid: read data timeout in 40 seconds
End of script output before headers: index.php
mod_fcgid: process 18805 graceful kill fail, sending SIGKILL
答案 0 :(得分:0)
我通过进行以下更改来修复此错误
ProcessLifeTime 7200
IPCConnectTimeout 30
IPCCommTimeout 60
FcgidMaxRequestsPerProcess 10000
FcgidConnectTimeout 600
FcgidIOTimeout 10000
现在似乎运行良好。