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
,只需使用模型的staticon
方法切换连接即可
请参阅github源代码:
我有多个
.env
到单个数据库连接,我可以同时运行两个数据库队列。如何存储要在队列中调用的正确数据库?