使用队列偶尔会报错,请问怎么排查问题?

业务场景:呼叫中心通话结束后,laravel通过redis队列下载录音文件
使用工具:supervisor
偶尔会在supervisor里面看到报错:
我现在php内存增加到128M还是偶尔会报错,难不成还是内存不够?

[2021-03-16 14:01:35][KAN56eRFnaozEo3YCBoAAMLUdRQOPZx8] Processing: App\Jobs\DownloadRecording

   Symfony\Component\ErrorHandler\Error\FatalError 

  Allowed memory size of 134217728 bytes exhausted (tried to allocate 1404928 bytes)

  at vendor/guzzlehttp/psr7/src/Stream.php:95
     91if (!isset($this->stream)) {
     92throw new \RuntimeException('Stream is detached');
     93}
     94▕ 
  ➜  95▕         $contents = stream_get_contents($this->stream);
     9697if ($contents === false) {
     98throw new \RuntimeException('Unable to read stream contents');
     99}


   Whoops\Exception\ErrorException 

  Allowed memory size of 134217728 bytes exhausted (tried to allocate 1404928 bytes)

  at vendor/guzzlehttp/psr7/src/Stream.php:95
     91if (!isset($this->stream)) {
     92throw new \RuntimeException('Stream is detached');
     93}
     94▕ 
  ➜  95▕         $contents = stream_get_contents($this->stream);
     9697if ($contents === false) {
     98throw new \RuntimeException('Unable to read stream contents');
     99}

      [2m+1 vendor frames [22m
  2   [internal]:0
      Whoops\Run::handleShutdown()

使用队列后台下载文件偶尔报错请问怎么排查问题

laravel里面日志:

[2021-03-16 14:01:37] production.ERROR: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1404928 bytes) {"exception":"[object] (Symfony\\Component\\ErrorHandler\\Error\\FatalError(code: 0): Allowed memory size of 134217728 bytes exhausted (tried to allocate 1404928 bytes) at /www/wwwroot/saas/vendor/guzzlehttp/psr7/src/Stream.php:95)
[stacktrace]
#0 {main}
"} 
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7

就是还不够

1个月前 评论
91hero (楼主) 1个月前
  1. supervisor 本质上还是守护了 horizon的进程,执行错误可以去 horizon 里查看失败任务,有详细记载的错误回调。
  2. supervisor 启动后会将当前代码缓存起来。更新了相关代码后要执行一下 supervisor restart all 重载代码
1个月前 评论
91hero (楼主) 1个月前

guzzle 可以直接把下载内容保存到文件,文档:docs.guzzlephp.org/en/stable/reque...

Supervisor 管理器,这个是啥东东?

1个月前 评论

file

应该是直接读取了大文件,找找分块下载。

1个月前 评论
91hero (楼主) 1个月前

加了内存之后 队列重启了吗 如果重启了 可能就是没找到配置文件

1个月前 评论

我怎么感觉是你下载的文件太大了....

3周前 评论
Epona

处理的数据太大了。

3周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!