0

我和主管一起跑视野,但后来杀死了主管,我只是在跑步

php artisan horizon

我有 2 个队列和两个单独的主管。这是地平线配置。

    'defaults' => [
        'logger' => [
            'connection' => 'redis',
            'queue' => [env('QUEUE_DEFAULT', '{default}')],
            'balance' => 'simple',
            'maxProcesses' => 1,
            'memory' => 128,
            'tries' => 2,
            'timeout' => 30,
            'nice' => 0,
        ],
        'scheduler' => [
            'connection' => 'redis',
            'queue' => [env('QUEUE_SCHEDULE', '{schedule}')],
            'balance' => 'simple',
            'maxProcesses' => 1,
            'memory' => 128,
            'tries' => 3,
            'timeout' => 30,
            'nice' => 1,
        ],
    ],
'environments' => [
        'production' => [
            'logger' => [
                'maxProcesses' => 3,
                'balanceMaxShift' => 1,
                'balanceCooldown' => 3,
                'memory' => 256
            ],
            'scheduler' => [
                'maxProcesses' => 2,
                'balanceMaxShift' => 1,
                'balanceCooldown' => 3,
                'memory' => 256
            ],
        ],
        'develop' => [
            'logger' => [
                'maxProcesses' => 2,
                'balanceMaxShift' => 1,
                'balanceCooldown' => 3
            ],
            'scheduler' => [
                'maxProcesses' => 2,
                'balanceMaxShift' => 1,
                'balanceCooldown' => 3
            ],
        ],

        'local' => [
            'logger' => [
                'maxProcesses' => 2,
            ],
            'scheduler' => [
                'maxProcesses' => 3,
            ],
        ],
    ],

在开发环境中进行测试时,horizo​​n 会随机处理默认队列中的一项作业。默认队列保存由排队事件侦听器推送的作业,该侦听器除了将日志写入文件之外什么都不做。它随机工作并处理一项工作,然后一切都在地平线上挂起,从未处理过。如果我跑

php aritsan horizon:terminate

然后重新启动 Horizo​​n,有时它会处理 1 个作业,然后再次开始将所有内容置于待处理状态。

这是我的 redis 队列和数据库配置。

'redis' => [
            'driver' => 'redis',
            'connection' => 'default',
            'queue' => env('QUEUE_DEFAULT', '{default}'),
            'retry_after' => 900,
            'block_for' => null,
        ],
DB:

    'redis' => [

        'cluster' => true,

        'client' => env('REDIS_CLIENT', 'predis'),

        'options' => [
            'cluster' => env('REDIS_CLUSTER', 'redis'),
        ],

        'clusters' => [
            'default' => [
                [
                    'scheme'   => env('REDIS_SCHEME', 'tcp'),
                    'host'     => env('REDIS_HOST', '127.0.0.1'),
                    'password' => env('REDIS_PASSWORD', null),
                    'port'     => env('REDIS_PORT', 6379),
                    'database' => env('REDIS_DATABASE', 1),
                ],
            ],

4

0 回答 0