簡體   English   中英

在Laravel中如何創建隊列對象並在沒有Facade的情況下設置其連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM