【问题标题】:Using the queue listener for xml messages对 xml 消息使用队列侦听器
【发布时间】:2015-07-20 18:44:12
【问题描述】:

我想使用 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 如何处理响应?

【问题讨论】:

  • 您能向我们展示您创建工作的代码吗?
  • 我不是在创造这份工作。 @ceejayoz 它直接从亚马逊推送到我的队列中,我只收听新消息。

标签: php laravel laravel-5.1


【解决方案1】:

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

【讨论】:

  • 是的,这也是我的想法。谢谢!
猜你喜欢
  • 2021-03-16
  • 1970-01-01
  • 1970-01-01
  • 2020-06-13
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多