数据库
首页 > 数据库> > php – 运行带有多个数据库的laravel队列

php – 运行带有多个数据库的laravel队列

作者:互联网

我有Laravel 5项目.这是多租户项目,所以我有一个包含多个数据库的文件夹项目.

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

解决方法:

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

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

因此,在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或beanstalk.

标签:php,queue,laravel,laravel-5,multi-tenant
来源: https://codeday.me/bug/20190623/1266570.html