我在这里遇到了一个奇怪的错误,有时候选择查询会从内存异常中消失。这里最大的问题是我自己从来没有能够看到错误。我知道它存在于用户和laravel.log
文件中,其中包含以下内容:
[2015-03-05 11:46:07] production.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Allowed memory size of 134217728 bytes exhausted (tried to allocate 196605 bytes)' in [...]/vendor/laravel/framework/src/Illuminate/Database/Connection.php:301
Stack trace:
#0 [internal function]: Illuminate\Exception\Handler->handleShutdown()
#1 {main} [] []
我的问题是:
我已在DB::disableQueryLog();
start/artisan.php
答案 0 :(得分:1)
主要问题是:
PHP进程内存不足,即点击 php.ini 中设置的memory_limit
。原因可能是各种各样的,即无限循环,大选择陈述;所以说:任何需要PHP在处理过程中将信息存储在内存中的东西。
我的具体问题&溶液强>
由于长时间运行的php进程,即队列工作者,我遇到了这个问题。
通过设置一个每20分钟php artisan queue:restart
的一个cron作业来解决它。
答案 1 :(得分:0)
正如错误消息所述,错误是关于某个数据库查询。但我也问如何我可以追溯错误的查询。我使用了一个名为Rollbar的错误跟踪服务来查找哪个API调用已死亡。很确定它不是最好的方式来解决这个问题,但它确实有效......