我有一个由Phalcon提供支持的宁静API,需要完成一些任务。
在 MailController 中,我有一个从Imap获取邮件的方法。因为我需要在这里放一些缓慢的东西,我想通过一份工作来处理它。
我的路由调用mailAction,启动作业并在此控制器中执行作业。
Services.php
$di->setShared("queue", function(){
$queue = new Beanstalk([
"host" => "127.0.0.1",
"port" => "11300"
]);
return $queue;
});
(di中的Beanstalk服务声明)
MailController.php
public function fetchMailboxAction(){
$queue = $this->di->getShared("queue");
$idQueue = $queue->put([
"readMailbox" => [
"email" => $this->email,
"customer_id" => $this->customer_id
]
],
[
"priority" => 250,
"delay" => 10,
"ttr" => 3600
]);
/* other stuff, return blah blah */
}
public function readMailbox($params){
// readMailboxStuff that should be executed through the job
}
我的问题:如何指定Beanstalkd执行我的函数所在的作业?文档很难回避,我不确定我是不是很好!
由于
答案 0 :(得分:2)
Beanstalkd只是作业的队列。不是工作经理。您需要创建一些cron任务来自己执行此功能。最好只使用cli任务imho并收集队列作业。