Laravel Horizon -工作被卡住

gojuced7  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(133)

我们使用的是Laravel 8.x,我们刚刚将队列驱动程序从数据库切换到redis/horizon。现在我们得到一些奇怪的行为与一些工作。
工作本身在几分钟到90分钟之间的一段时间内转换东西。使用数据库驱动程序,作业可以正常执行。有了地平线,工作执行了一段时间,然后似乎被卡住了。我们已经用相同的有效负载测试了这个作业很多次,它在不同的运行时被卡住,并在超时后被标记为失败(与start的时间戳相同)。
主管的日志文件包含以下内容:

[2022-01-07 18:08:33][b69e5cf9-4f88-4005-a5c4-4722e46fe7d0] Processing: App\Jobs\ConvertJob
[2022-01-07 18:08:33][b69e5cf9-4f88-4005-a5c4-4722e46fe7d0] Failed:     App\Jobs\ConvertJob

(其他)日志文件不包含任何(其他)错误:-/
我们的horizon配置如下所示(只是相关部分):

'memory_limit' => 64,

    'defaults' => [
      'converter' => [
          'connection' => 'redis',
          'queue' => ['convert'],
          'balance' => 'auto',
          'maxProcesses' => 1,
          'memory' => 128,
          'tries' => 1,
          'nice' => 0,
      ],
      'worker' => [
          'connection' => 'redis',
          'queue' => ['default'],
          'balance' => 'auto',
          'maxProcesses' => 1,
          'memory' => 128,
          'tries' => 1,
          'nice' => 0,
      ],
    ],

    'environments' => [
      'local' => [
        'converter' => [
          'minProcesses' => 4,
          'maxProcesses' => 9,
          'balanceMaxShift' => 3,
          'balanceCooldown' => 2,
        ],
        'worker' => [
          'maxProcesses' => 6,
          'balanceMaxShift' => 2,
          'balanceCooldown' => 3,
        ]
      ],

    ],

Supervisor配置:

[program:horizon]
process_name=%(program_name)s
command=php /app/artisan horizon
autostart=true
autorestart=true
user=%(ENV_SUPERVISOR_USER)s
redirect_stderr=true
stdout_logfile=/app/logs/sv-horizon.log
stopwaitsecs=5400

队列配置:

'redis' => [
    'driver' => 'redis',
    'connection' => 'queue',
    'queue' => env('REDIS_QUEUE', 'default'),
    'retry_after' => 5430,
    'block_for' => null,
    'after_commit' => false,
],

作业本身将try设置为1,timeout设置为5400秒,failOnTimeout设置为true。
你们谁能给予我点提示?

cwdobuhd

cwdobuhd1#

我遇到了同样的问题,当我按照@patrik-grinsvall的建议增加memory_limit=500时,问题就解决了。

相关问题