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 に答える