【问题标题】:run artisan queue:work on dynamic multitenant multi database system运行工匠队列:在动态多租户多数据库系统上工作
【发布时间】:2021-11-22 15:52:04
【问题描述】:

我正在使用 laravel 8,并在 laravel 中开发了一个多租户应用程序。

我的应用程序为每个用户动态创建了不同的数据库 数据库连接基于子域。 例如,如果子域是foo.example.com,它连接到数据库foo

我有一个数组中所有子域的列表。

现在我想为每个子域/数据库运行 php artisan queue:work 或执行作业表任务。如果我无法使用工匠命令,我愿意接受任何其他黑客攻击。

【问题讨论】:

    标签: laravel laravel-artisan laravel-queue


    【解决方案1】:

    您可以通过使用不同的connections or queues 来实现此目的。使用不同的队列时,您仍然可以在同一个后端服务上管理所有作业。如果您想使用不同的后端服务(或相同类型的多个后端服务),您可能应该使用多个连接。

    使用多个队列

    Dispatch 您的工作与->onQueue($currentSubdomain)
    Start 您的队列工作人员与php artisan queue:work --queue=<foo>,其中<foo> 是您当前的子域。

    使用多个连接

    Dispatch 您的工作与->onConnection($currentSubdomain)
    Start 您的队列工作人员与php artisan queue:work <connection>

    注意:使用多个连接需要在您的queue.php 中进行正确配置。最简单的方法是只使用多个队列,因为它们不需要额外的配置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      • 2016-04-21
      • 2018-07-25
      • 1970-01-01
      • 2013-09-06
      • 2023-01-03
      相关资源
      最近更新 更多