Я только что заметил, что некоторые из моих слушателей не используют очередь, которую я ожидал, что они будут использовать.Наша команда обновилась с Laravel 5.2 до 5.5 несколько недель назад, и я думаю, что именно тогда проблема начала возникать.В системе не было большой нагрузки, поэтому я обнаружил ее только случайно.
В любом случае.Я использовал для задания имени очереди на слушателе с помощью метода очереди, например так:
public function queue(QueueManager $handler, $method, $arguments): void
{
$handler->connection()->push($method, $arguments, Queue::getNotificationQueue());
}
Этот подход больше не работает, поэтому очередь по умолчанию в итоге обрабатывает задание вместо ожидаемой очереди уведомлений.
Итак, я посмотрел документацию https://laravel.com/docs/5.5/events#queued-event-listeners,, в которой говорится, что имя должно быть установлено в свойстве очереди прослушивателя.Моя проблема в том, что у меня есть имя очереди в переменной окружения, поэтому я не могу просто установить его непосредственно как свойство, как показано в документации, и это не работает для его установки в конструкторе, например:
protected $queue;
public function __construct()
{
$this->queue = Queue::getNotificationQueue();
}
Кто-нибудь здесь имеет представление о том, как я могу обойти это?