使用Phalcon PHP框架实施CRON作业的正确方法是什么? 我一直在尝试
sid \ phalcon \ cron库一遍又一遍地阅读文档,我不知道如何运行库。 i我有一个运行的phalcon CLI任务,这个想法是创建一个CRON作业来执行该任务。 这是我的代码:
$this->app->di->set(
"cron_notify",
function () {
$cron = new \Sid\Phalcon\Cron\Manager();
$cron->add(
new \Sid\Phalcon\Cron\Job\System(
"* 8 * * *",
"php console.php mytask action"
)
);
});
我还需要做什么?我还将控制台附加到DI上:
$console = new \Phalcon\Cli\Console();
$di->setShared("console", $console);
我还尝试以这种方式添加cron:
$cron->add(
new \Sid\Phalcon\Cron\Job\Phalcon(
"0 * * * *",
[
"task" => "task",
"action" => "action",
"params" => "params"
]
)
);
随附的控制台对象并调用我的phalcon任务,但也无法正常工作。
您似乎已经设置了一切,但从未告诉过Cron实例运行。这可能是因为在将作业添加到cron
的文档页面上有点误导。
您还可以添加来自crontab文件的作业,例如这个:* * * * * /usr/bin/php /path/to/cli.php cron
看起来像是用手动设置作业的替代方法,但事实并非如此。这是以后发生的第一步。您必须实际上将其添加到crontab中,并完成任务
$cron->add()
cron
每分钟运行,以处理
\Sid\Phalcon\Cron\Manager
服务中定义的所有其他作业。文档中的示例页面在您的申请订单中运行作业(或其他任何内容),必须使用HTTP请求或CLI调用来启动应用程序本身。在您的应用程序中,将工作及其间隔定义为可以以各自的间隔进行运行,但是您需要一项主要任务作为入门点,以评估这些间隔并在到期时运行工作。
再次具有此crontab条目:
* * * * * /usr/bin/php /path/to/cli.php cron
和此任务:class CronTask extends \Phalcon\Cli\Task
{
public function mainAction()
{
$this->cron->runInBackground();
}
}
为了做自己的事情,这应该是上述主要任务。 crontab条目每分钟运行并调用任务
cron