azn*_*t81 5 php laravel laravel-5 laravel-5.2
在Lumen/Laravel中,我想向给定的队列发送消息.
默认情况下,我将它设置为Redis,我想将其发送到另一个队列服务器,因为另一个应用程序将负责它.
我知道我可以做$queue->pushRaw('payload');但是我没有后续的方式来选择连接.
我知道我可以使用Facade来创建我的队列:
$connection = Queue::connection('connection_name');
$connection->pushOn('queue_name', $job)
Run Code Online (Sandbox Code Playgroud)
但是我在Lumen这样做,并且想要避免在这方面打开Facade.另外,我想知道如何做到这一点,因为我希望最终通过IoC通过作业事件处理程序.
Lumen/Laravel 5.2的版本.
小智 5
正如@Mois44 所暗示的,您应该能够使用 QueueManager 来完成此操作。
QueueManager 将允许您调用 connection() 方法,该方法将返回一个 Queue 对象。从这里,您可以调用正常的排队函数(pushOn、laterOn 等)
// Returns an Illuminate\Queue\QueueManager object
$queueManager = app('queue');
// Returns an Illuminate\Queue\Queue object
$queue = $queueManager->connection('my-connection');
$queue->pushOn('queue_name', $job);
Run Code Online (Sandbox Code Playgroud)
或全部链接在一起
app('queue')->connection('my-connection')->pushOn('queue_name', $job)
Run Code Online (Sandbox Code Playgroud)
诚然,我的 Lumen 特定知识非常有限。如果 app() 方法无法获取 QueueMananger 的实例,那么我不知道该怎么办。
| 归档时间: |
|
| 查看次数: |
1310 次 |
| 最近记录: |