Amazon AWS和Beanstalkd队列作业未从当前作业延迟移动到当前作业就绪

时间:2014-08-20 22:01:07

标签: php laravel beanstalkd

我在我的amazon aws ec2服务器上安装了beanstalkd。但是,当我排队工作时,它确实转移到当前工作延迟。但即使延迟时间仅为5s-10s,它也不会朝着当前就业准备的方向发展。

服务器设置或beanstalkd设置有什么问题吗?

非常感谢帮助。

以下是代码。我正在使用Laravel框架和其他说明我的EC2服务器安装了Ubuntu 12.04 LTS。

class ShareOneCommentCommandHandler implements CommandHandler{

/**
 * Handle the command
 * @param $command
 * @return mixed
 */
public function handle($command)
{
    $date = Carbon::now()->addSeconds(5);
    Queue::later(
        $date,
        'Acme\Commands\Share\PublishPost',
        [  'uid'      => Auth::user()->id,
           'accounts' => $command->accounts,
           'message'  => $command->message,
           'link'     => $command->link,
           'title'    => $command->linktitle,
           'domain'   => $command->linkdomain,
           'image'    => $command->linkimage
        ]
    );
}

} 

1 个答案:

答案 0 :(得分:0)

我自己并没有使用Laravel,但我发现Queue::later()可以采用DateTimeCarbon延伸)或#39}的简单整数;未来的秒数'。 BeanstalkD协议本身不处理日期,只处理秒数。

如果您可以在没有later()功能的情况下通过Beanstalkd运行作业(以确认beanstalkd服务器和Laraval通常正常工作),那么我会将函数更改为直接使用秒数并查看是否的工作原理。

Queue::later(5/*seconds*/, 'Command\Class', [...]);