在phalcon

问题描述 投票:0回答:1

使用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文件的作业,例如这个:
php cron phalcon
1个回答
0
投票

* * * * * /usr/bin/php /path/to/cli.php cron

...

看起来像是用

$cron->add()

手动设置作业的替代方法,但事实并非如此。这是以后发生的第一步。您必须实际上将其添加到crontab中,并完成任务
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

,依次检查作业定义并在这些定义下运行它们。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.