codecamp

Laravel 8 Balance 选项

Horizon 允许你从三个平衡策略中进行选择:simpleauto, 和 falsesimple 策略是配置文件的默认选项,它会在进程之间平均分配进入的任务:

'balance' => 'simple', 

auto 策略根据队列的当前工作负载来调整每个队列的工作进程数量。举个例子,如果你的 notifications 队列有 1000 个等待的任务,而你的 render 队列是空的,那么 Horizon 将为 notifications 队列分配更多的工作线程,直到队列为空。当 balance 选项被设置为 false 时,将使用默认的 Laravel 行为,它按照配置中列出的顺序处理队列。

当使用 auto 策略时,你可以定义 minProcessesmaxProcesses 的配置选项来控制进程的最小和最大数量:

'environments' => [
    'production' => [
        'supervisor-1' => [
            'connection' => 'redis',
            'queue' => ['default'],
            'balance' => 'auto',
            'minProcesses' => 1,
            'maxProcesses' => 10,
            'balanceMaxShift' => 1,
            'balanceCooldown' => 3,
            'tries' => 3,
        ],
    ],
], 

balanceMaxShiftbalanceCooldown 配置项可以确定 Horizon 将以多快的速度扩展进程,在上面的示例中,每 3 秒钟最多创建或销毁一个新进程,你可以根据应用程序的需要随意调整这些值。

Laravel 8 配置
Laravel 8 任务清理
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Laravel 8 入门指南

Laravel 8 基础功能

Laravel 8 前端开发

Laravel 8 安全相关

Laravel 8 综合话题

数据库

Eloquent ORM

测试相关

官方拓展包

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }