Laravel 5如何基于SQS消息数据运行命令

时间:2015-05-29 22:10:34

标签: laravel queue laravel-5 amazon-sqs artisan

我正在尝试在laravel中设置基于sqs的消息队列。 我设置了我的queue.php文件,当我运行artisan queue:listen命令时,成功检索了消息。但是,我得到一个[ReflectionException]告诉我我的命令不存在。

存储在SQS上以供检索的消息如下所示:

{"job":"HELLOWORLD"}

我创建了一个laravel / artisan命令,其名称与http://laravel.com/docs/5.0/queues

上的说明相同
php artisan make:command HELLOWORLD --queued    

但是,当我运行命令

php artisan queue:listen 

当从SQS检索到消息时,我收到以下错误

  [ReflectionException]
  Class HELLOWORLD does not exist

我的问题是如何让laravel识别这个命令,一旦有效,我如何让laravel看到SQS中包含的JSON消息中的其他项目。 例如,假设我有另一个名为" message"的索引。数据"你好,来自sqs"让我的json看起来像

{"job":"HELLOWORLD","message":"Hello from SQS"}

我如何进入这个其他领域? 提前致谢。 Laravel中队列的文档很稀疏。

1 个答案:

答案 0 :(得分:0)

答案是我完全错了。您需要使用Laravel队列文档中显示的$contoller->dispatch方法。

如果您这样做,将正确形成消息,并且您创建的类中的任何变量仍将存在。