[英]In Laravel how to create a queue object and set their connection without Facade
在Lumen / Laravel中,我想向給定的隊列發送消息。
默認情況下,我將它設置為Redis,我想將其發送到另一個隊列服務器,因為另一個應用程序將負責它。
我知道我可以做$queue->pushRaw('payload');
然而,我沒有后續的方式來選擇連接。
我知道我可以使用Facade來創建我的隊列:
$connection = Queue::connection('connection_name');
$connection->pushOn('queue_name', $job)
但是我在Lumen這樣做,並且想要避免在這方面打開Facade。 另外,我想知道如何做到這一點,因為我希望最終通過IoC通過作業事件處理程序。
Lumen / Laravel 5.2的版本。
正如@ 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);
或全部鏈接在一起
app('queue')->connection('my-connection')->pushOn('queue_name', $job)
不可否認,我的Lumen具體知識非常有限。 如果app()方法無法獲取QueueMananger的實例,那么我不知道該怎么做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.