【问题标题】:Laravel Queue with Amazon SQS使用 Amazon SQS 的 Laravel 队列
【发布时间】:2014-03-23 22:20:43
【问题描述】:

您好,我是 laravel 4 的新手,在我的本地机器上配置 AWS SQS 时遇到问题。我需要在 AWS 队列中推送一些作业并按顺序执行它们。

我已经在 app/config/queue.php

中设置了所需的值
 'sqs' => array(
     'driver' => 'sqs',
     'key'    => 'XXXXXX',
      'secret' => 'XXXXXX',
      'queue'  => 'https://sqs.us-west-2.amazonaws.com/XXXXXX/myqueue',
      'region' => 'us-west-2',
   ),

并且还覆盖了 app/config/local/queue.php

中的队列值
$queue = include __DIR__ . "/../queue.php";
$queue['connections']['sqs']['queue'] = 'https://sqs.us-west-2.amazonaws.com/XXXXXXX/mylocalqueue';
return $queue;

我还更改了更新 bootstrap/start.php 以将环境设置为本地

<?php
$env = $app->detectEnvironment(array(
'local' => array('my-machine-name'),
));

我已在控制器函数中将作业推送到队列中,如下所示

public function pus_aws($data){
    $queue = $this->app['queue'];
    $queue->push('\ControllerName@ActionName', array(
        'data' => $data,
    ));

    return true;
}

但它不起作用。有人可以帮我推送和运行排队的作业吗?

【问题讨论】:

  • 我也面临同样的问题,如果你有任何突破请告诉我。谢谢
  • 您看到什么样的错误?
  • 我确实在 Apache error_log 文件中发现了任何相关错误
  • @Prosenjit 哪里可以得到亚马逊的公钥?

标签: laravel amazon-web-services queue amazon-sqs


【解决方案1】:

你在排队吗?

php artisan queue:listen --env=your_environment

http://laravel.com/docs/queues#running-the-queue-listener

对于生产设置,您应该使用 Laravel 文档中所述的主管。

看这个教程(使用 beanstalkd,但对于 sqs 是一样的,只是你不必安装 beanstalkd) http://fideloper.com/ubuntu-beanstalkd-and-laravel4

【讨论】:

  • 感谢您的帮助 php artisan queue:listen 对我有用,但侦听器会在一段时间后退出。我需要为 1) php artisan queue:listen 设置一个恶魔或 cron 吗 2) php artisan queue:work 谢谢
  • 对,如答案所述,请看这个链接http://fideloper.com/ubuntu-beanstalkd-and-laravel4设置supervisor。这将重新启动队列:如果它退出则监听。
猜你喜欢
  • 2017-02-07
  • 2017-04-12
  • 2016-01-18
  • 2019-04-11
  • 2018-09-24
  • 2014-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多