0

只是一个关于任务调度和使用 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 {

    // ...

还是需要在初始化函数中声明?

use Bolt\CronEvents;

class MyExtension extends \Bolt\BaseExtension {

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

    // ...

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

4

2 回答 2

1

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

那里的文档过于简单化了。

于 2014-09-26T11:25:34.447 回答
0

我在初始化函数中得到了它,它工作正常

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

}

public function run(){
 // code to run
}
于 2015-10-22T21:59:00.800 回答