使用xml消息的队列侦听器

时间:2015-07-20 18:44:12

标签: php laravel laravel-5.1

我想通过带有laravel 5.1的queue:listen命令的Amazon SQS队列检索从XML格式推送到Amazon的消息,但是会收到错误

  

参数1传递给Illuminate \ Queue \ Jobs \ Job :: resolveAndFire()必须是数组类型,给定null,在/ opt / PhpstormProjects / Amazon_Requester / vendor / laravel / framework / src / Illuminate / Queue /中调用第52行的Jobs / SqsJob.php并定义了

所以我查看上面的类,通过fire方法调用作业:

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

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

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

1 个答案:

答案 0 :(得分:1)

Laravel的队列期望队列项来自Laravel。队列项包含一个JSON有效负载,其中包含要运行哪个处理程序的信息,要传递给它的数据等。如果要监听Amazon创建的队列项,您可能不需要使用Laravel队列系统它直接通过适用于PHP的AWS开发工具包访问SQS。