2016-11-29 232 views
0

我有一个脚本,使用curl从另一个网站获取大量数据。Magento 2 - 500内部服务器错误

但一段时间后,我得到500内部服务器错误。 脚本没有错,但大数据一次不会被抓取。

我创建控制台命令也喜欢下面

PHP斌/ Magento的喷气:sync_categories

,创造必要的文件吧。

但是从用户的角度来看它不可行。

有什么可以替代呢?

回答

0

为了更好的解决方案,你必须使用shell_exec('php your-shell-file &');使用“&”作为后台处理脚本的最后一个参数。

0

对于500内部服务器错误;它通常是服务器端错误。如果您在本地工作,请转至您的Apache php.ini并将max_execution_time = 30更改为最大时间范围,例如max_execution_time = 300(秒)。如果你要去一个局外人,这需要时间,特别是如果你发送大数据。

如果问题仍然存在,然后更改像

memory_limit=2G 
    max_execution_time=300 
    post_max_size=8M 

其他重要的价值观希望工程。

+0

谢谢。 我正在创建扩展,所以不可能通知每个用户设置此服务器配置。是否有任何解决方案可以在自己的代码中进行管理 – Nitz

+0

我想我正在理解你的工作。当你进入数据库时​​清理你的代码。我通常在Magento中看到的一个大问题是程序员为每个SKU创建一个循环进入数据库。想象一下,如果您拥有500个SKU,则所有资源都可以处理。例如。如果您必须在数据库中执行SELECT操作,而不是执行像foreach这样的循环($ skus as $ sku):SELECT * FROM table WHERE sku =“$ sku”endforeach。 ----->使用IN子句构建查询。像--- ---> SELECT * FROM table where sku IN $ skus。这些变化非常重要。 –

+0

如果您无权访问数据库,因为您使用的是API。将timeout属性设置为小于30秒,通常这是普通服务器的超时。 –