0

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

传递给 Illuminate\Queue\Jobs\Job::resolveAndFire() 的参数 1 必须是数组类型,给定 null,在 /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 如何处理响应?

4

1 回答 1

1

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

于 2015-07-20T19:54:07.007 回答