In Laravel come creare un object coda e impostare la connessione senza facciata

In Lumen / Laravel voglio submit un messaggio a una determinata coda.

per impostazione predefinita l'ho impostato su Redis, quello che vorrei è inviarlo a un altro queue server come un'altra applicazione si prenderà cura di esso.

So che posso fare $queue->pushRaw('payload'); Tuttavia non c'è modo per me di scegliere la connessione.

Sono consapevole che posso utilizzare Facade per creare la mia coda in quanto tale:

 $connection = Queue::connection('connection_name'); $connection->pushOn('queue_name', $job) 

Comunque lo sto facendo in Lumen, e vorrei evitare di accendere la facciata proprio per questo aspetto. Inoltre, mi piacerebbe sapere come fare questo come vorrei passare da IoC attraverso un gestore di events di lavoro alla fine.

Versione di Lumen / Laravel 5.2.

Come alluso da @ Mois44, dovresti riuscire a farlo con QueueManager.

QueueManager ti consentirà di call il metodo connection (), che restituirà un object Queue. E da qui puoi call le normali funzioni in coda (pushOn, laterOn, ecc.)

 // 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); 

o tutti incatenati insieme

 app('queue')->connection('my-connection')->pushOn('queue_name', $job) 

Devo ammettere che la mia conoscenza specifica del Lumen è piuttosto limitata. Se il metodo app () non funziona per get un'istanza di QueueMananger, non sono sicuro di cosa fare.