Intereting Posts
Как шифровать строку в PHP? Как изменить корень документа в поведении веб-сервера? Перейти на страницу HTML из функции PHP Htmlentities против addlashes vs mysqli_real_escape_string Функция обратного вызова в Codeigniter с несколькими параметрами во время проверки формы экономия места в таблице Mysql Django, Python: Есть ли простой способ преобразования ключей POST в стиле PHP в многомерный dict? Как сделать текстовое поле с несколькими типами строк в html? Есть ли какой-либо API, чтобы получить подробную информацию о железнодорожной службе США вызывающий узел и uglifyjs из контекста Php сбой php getaddrinfo: «При поиске базы данных произошла ошибка, не подлежащая восстановлению». PHP конвертирует datetime в несколько секунд Как я могу написать в PHP функцию, которая модифицирует массив? Сравнение массивов, не распечатывающих различия Настройка таблицы сведений о заказах в уведомлениях электронной почты Woocommerce

В Laravel как создать объект очереди и установить их соединение без Facade

В Lumen / Laravel я хочу отправить сообщение в заданную очередь.

по умолчанию я настроил его на Redis, я бы хотел отправить его на другой сервер очередей, поскольку другое приложение позаботится об этом.

Я знаю, что могу делать $queue->pushRaw('payload'); Однако для меня нет другого способа выбрать соединение.

Я знаю, что я могу использовать Facade для создания моей очереди как таковой:

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

Однако я делаю это в Lumen, и хотел бы не включать Фасад только для этого аспекта. Кроме того, я хотел бы знать, как это сделать, поскольку я хотел бы пройти через 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) 

По общему признанию, мои специфические знания Люмена довольно ограничены. Если метод app () не работает, чтобы получить экземпляр QueueManager, то я не уверен, что делать.