沃梦达 / 编程问答 / php问题 / 正文

运行具有多个数据库的LARLAVEL队列

running laravel queue with multiple database(运行具有多个数据库的LARLAVEL队列)

本文介绍了运行具有多个数据库的LARLAVEL队列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有Laravel 5项目。这是多租户项目,所以我有一个文件夹项目与多个数据库。

当我使用php artisan queue:listen时,它只适用于当前的数据库设置。我使用database队列驱动程序,因此每个租户都有自己的通知表。如何设置队列侦听器以检查所有数据库作业?

推荐答案

如果要继续使用database驱动程序,我建议设置另一个包含所有排队作业和失败作业的数据库。

虽然它不在配置中,也不在文档中提到,但在查看代码后,看起来您应该能够向队列配置添加connection参数,然后队列将与该连接指定的数据库交互。

因此,在config/database.php中,为队列数据库定义一个新连接:

'connections' => [
    // your existing connections

    'queue' => [
        'driver' => 'mysql',
        'database' => 'your-queue-database',
        // rest of connection information (host, port, etc)
    ],
],

然后,在config/queue.php中,告诉数据库队列使用新连接:

'connections' => [
    'database' => [
        'driver' => 'database',
        'connection' => 'queue', // connection name from database config
        'table' => 'jobs',
        'queue' => 'default',
        'retry_after' => 90,
    ],
]

另一个选项是移动到另一个队列驱动程序。设置Redis、SQS或豆茎。

这篇关于运行具有多个数据库的LARLAVEL队列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:运行具有多个数据库的LARLAVEL队列

基础教程推荐