我有一个由phalcon提供动力的RESTFUL API,需要背景某些任务。
在A MailController 我有一种从IMAP获取邮件的方法。由于我需要在这里放一些缓慢的东西,所以我想通过工作处理。
我的路线调用了邮件,该作业已启动,该作业应在此控制器中执行。
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
}
我的问题:如何指定controller it beanstalkd必须执行我的函数的作业?文档非常回避,我不确定我是否处于良好状态!
谢谢
beanstalkd只是工作的队列。不是工作处理者。您需要创建一些CRON任务来自己执行此功能。最好仅使用CLI任务IMHO并收集队列作业。