Использование прослушивателя очереди для сообщений XML

Я хочу получать сообщения, отправленные из Amazon в формате XML, через очередь Amazon SQS с помощью команды laravel 5.1 queue: listen, но при этом появляется сообщение об ошибке

Аргумент 1, передаваемый в Illuminate \ Queue \ Jobs \ Job :: resolAndFire (), должен иметь тип массива с указанным нулевым значением и вызываться в / opt / PhpstormProjects / Amazon_Requester / vendor / laravel / framework / src / Illuminate / Queue / Jobs / SqsJob .php в строке 52 и определен

Итак, я посмотрел на вышеприведенный класс, где он вызывается через метод fire:

$this->resolveAndFire(json_decode($this->getRawBody(), true));

Проблема здесь в том, что json_decode (…) возвращает null, но когда я выкидываю данные сообщения, я получаю xml-ответ, как и ожидалось.

Если бы я изменил способ, которым слушатель обрабатывает мой ответ, я не смог бы больше обновлять laravel, не нарушая мой код, поэтому я сомневаюсь, есть ли другой способ сказать laravel, как обрабатывать ответ?

0

Решение

Очередь Laravel ожидает поступления элементов очереди от Laravel. Элементы очереди содержат полезную нагрузку JSON с информацией о том, какой обработчик запускать, какие данные передавать на него и т. Д. Если вы хотите прослушивать созданные в Amazon элементы очереди, вам, вероятно, не нужно использовать для этого систему очередей Laravel и получить доступ к SQS через AWS SDK для PHP напрямую.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]