Cron和Bolt一起工作

时间:2014-09-26 11:02:34

标签: cron bolt-cms

关于任务调度和使用Bolt CM扩展的快速问题。

文档:https://docs.bolt.cm/v20/tasks

将任务调度添加到扩展时,是否必须在类外部指定侦听器?

use Bolt\CronEvents;

$this->app['dispatcher']->addListener(CronEvents::CRON_INTERVAL, array($this, 'myJobCallbackMethod'));

class MyExtension extends \Bolt\BaseExtension {

    // ...

或者它是否需要在initialize函数中声明?

use Bolt\CronEvents;

class MyExtension extends \Bolt\BaseExtension {

    public function initialize() {
         $this->app['dispatcher']->addListener(CronEvents::CRON_INTERVAL, array($this, 'myJobCallbackMethod'));
    }

    // ...

我认为它是后者,因为类之外的$this将在对象上下文之外。
文件使它看起来好像是直接跟随,所以我想再仔细检查一下。

2 个答案:

答案 0 :(得分:1)

你是对的,$this->app['dispatcher']->addListener()调用确实需要在类上下文中。

那里的文档过于简单化。

答案 1 :(得分:0)

我在初始化函数中得到它并且工作正常

 public function initialize()
{
     $this->app['dispatcher']->addListener(CronEvents::CRON_DAILY, array($this, 'run'));

}

public function run(){
 // code to run
}