使用 xml 消息的队列侦听器

Using the queue listener for xml messages

我想使用 laravel 5.1 的 queue:listen 命令通过 Amazon SQS 队列检索以 XML 格式从亚马逊推送的消息,但收到一条错误消息

Argument 1 passed to Illuminate\Queue\Jobs\Job::resolveAndFire() must be of the type array, null given, called in /opt/PhpstormProjects/Amazon_Requester/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php on line 52 and defined

所以我查看了上面的 class 作业是通过 fire 方法调用的:

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

这里的问题是 json_decode(...) returns null,但是当我转储消息数据时,我得到了预期的 xml 响应.

如果我改变监听器处理我的响应的方式,我将无法在不破坏我的代码的情况下更新 laravel,所以我怀疑是否有任何其他方式可以告诉 laravel 如何处理响应?

Laravel 的队列期望队列项目来自 Laravel。队列项包含一个 JSON 有效载荷,其中包含有关 运行 哪个处理程序的信息、要传递给它的数据等。如果您想收听亚马逊创建的队列项,您可能不需要使用 Laravel 队列系统并通过 AWS SDK 直接访问 PHP 的 SQS。