我在我的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
]
);
}
}
答案 0 :(得分:0)
我自己并没有使用Laravel,但我发现Queue::later()
可以采用DateTime
(Carbon
延伸)或#39}的简单整数;未来的秒数'。 BeanstalkD协议本身不处理日期,只处理秒数。
如果您可以在没有later()
功能的情况下通过Beanstalkd运行作业(以确认beanstalkd服务器和Laraval通常正常工作),那么我会将函数更改为直接使用秒数并查看是否的工作原理。
Queue::later(5/*seconds*/, 'Command\Class', [...]);