config/horizon.php中,您可以定义要专用于每个Horizon队列的进程数.如果我有一台不用于处理请求的第二台服务器,而只是要用来处理某些作业(job)和任务,我如何设置它才能使第二台服务器只查看一个队列,而另一台主服务器不查看该队列?

例如,我有一个名为Webhooks的队列,我希望第二个服务器只处理Webhooks,而主服务器根本不处理Webhooks队列中的任何作业(job).做这件事的正确方式是什么?

我只是在每个服务器上有一个不同的horizon.php文件,一个分配给Webhooks的进程为0,另一个分配给Webhooks的进程为20?

推荐答案

是的,您可以像您所描述的那样在每台服务器上拥有不同的配置文件,但在某些情况下维护起来可能会很痛苦.作为替代解决方案,您可以使用单一的共享配置,但然后委托不同于env变量的某些参数,以便在每个服务器的. env文件中进行设置.

'environments' => [
    'production' => [
        'Webhooks' => [
            'queue' => ['webhooks'],
            'balance' => 'simple',
            'processes' => env('WEBHOOKS_PROCESS_COUNT', 0),
            'tries' => 3,
        ],
        ... 
    ],
],

然后,在主服务器的.env文件中,您可以设置:

WEBHOOKS_PROCESS_COUNT=0

在第二台服务器上:

WEBHOOKS_PROCESS_COUNT=20

Php相关问答推荐

WooCommerce拆分运输包裹上的商品数量增加运输成本

自定义WooCommerce查询字符串仅显示前3个产品

PHP,ZipArchive删除一个空文件?

如何在不指定symfony列的情况下从数据库中获取行数组

LaravelEloquent 地根据表中的值提取记录

WooCommerce管理订单列表自定义列不显示值

在WooCommerce中添加基于类别的固定费用

Laravel区分大小写搜索

在Laravel中从动态嵌套数组中获取值

升级到PHP 8.2后无法删除cURL Cookie文件

Laravel Carbon DiffForHumans选项(年,月,天)

Regex:高级删除单行PHP注释

execute_query 和prepare+execute 有什么区别?

将自定义字段添加到管理产品中 WooCommerce 3.2+ 中的快速编辑

API 平台 - UI 服务器端点定义

需要以一种形式执行两个操作

WordPress 分页无法正常工作

PHP删除具有相同键的项目,除了具有最低值的项目

我怎样才能在 .htaccess 中有 2 个参数?

列表不在 GROUP BY 子句中并且包含 X2CRM 中的非聚合列