Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel-对多个数据库进行排队_Laravel_Laravel 5_Amazon Sqs_Laravel Queue - Fatal编程技术网

Laravel-对多个数据库进行排队

Laravel-对多个数据库进行排队,laravel,laravel-5,amazon-sqs,laravel-queue,Laravel,Laravel 5,Amazon Sqs,Laravel Queue,我的config\app.php中有多个数据库配置。例如: “连接”=>[ “数据库1”=>[ /** * ... */ “数据库”=>database1_env(“数据库”), 'username'=>database1_env('username'), “密码”=>database1_env(“密码”), /** * ... */ ], “数据库2”=>[ /** * ... */ “数据库”=>database2_env(“数据库”), 'username'=>database2_env(

我的
config\app.php
中有多个数据库配置。例如:

“连接”=>[
“数据库1”=>[
/**
* ...
*/
“数据库”=>database1_env(“数据库”),
'username'=>database1_env('username'),
“密码”=>database1_env(“密码”),
/**
* ...
*/
],
“数据库2”=>[
/**
* ...
*/
“数据库”=>database2_env(“数据库”),
'username'=>database2_env('username'),
“密码”=>database2_env(“密码”),
/**
* ...
*/
]
]

我已经配置好了,几乎所有的工作都很好,问题是异步的。因为我对两个数据库都有相同的通知[Mail to request password],我不知道如何强制选择正确的数据库。

在不弄乱
$\u服务器['argv']
变量(包含CLI输入参数)的情况下,最快的方法是创建单独的.env文件,类似于
.env.db1
.env.db2
之后,您可以使用
--env=db1
--env=db2
参数运行队列,因为
队列:work
是artisan命令。这看起来可能不是最好的解决方案,但请相信我,您将避免框架底层部分(主要是缓存配置)的许多问题

见:

你的问题拼错了一点,因为我认为你的工作需要处理其中一个数据库,而不是同时处理两个数据库

但是,如果您的作业同时在两个数据库上运行,则不必创建独立的
.env
,只需使用模型的static
on
方法切换连接即可

请参阅github源代码:

我有多个
.env
到单个数据库连接,我可以同时运行两个数据库队列。如何存储要在队列中调用的正确数据库?