关于任务调度和使用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
将在对象上下文之外。
文件使它看起来好像是直接跟随,所以我想再仔细检查一下。
答案 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
}