Laravel 8 Balance 选项
Horizon 允许你从三个平衡策略中进行选择:simple
, auto
, 和 false
。simple
策略是配置文件的默认选项,它会在进程之间平均分配进入的任务:
'balance' => 'simple',
auto
策略根据队列的当前工作负载来调整每个队列的工作进程数量。举个例子,如果你的 notifications
队列有 1000 个等待的任务,而你的 render
队列是空的,那么 Horizon 将为 notifications
队列分配更多的工作线程,直到队列为空。当 balance
选项被设置为 false
时,将使用默认的 Laravel 行为,它按照配置中列出的顺序处理队列。
当使用 auto
策略时,你可以定义 minProcesses
和 maxProcesses
的配置选项来控制进程的最小和最大数量:
'environments' => [
'production' => [
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['default'],
'balance' => 'auto',
'minProcesses' => 1,
'maxProcesses' => 10,
'balanceMaxShift' => 1,
'balanceCooldown' => 3,
'tries' => 3,
],
],
],
balanceMaxShift
和 balanceCooldown
配置项可以确定 Horizon 将以多快的速度扩展进程,在上面的示例中,每 3 秒钟最多创建或销毁一个新进程,你可以根据应用程序的需要随意调整这些值。