2

JobQueueEvent の実装中にリスナーで問題に直面しています。これが私のリスナークラスです

クラス JobStateChangeListener {

    関数 onJobStateChange(StateChangeEvent $event) {

        if ($event->getJob()->isFinished()) {
            error_log('ジョブのステータスは isFinished');
        }

        if ($event->getJob()->isPending()) {
            error_log('ジョブステータスは保留中');
        }

        if ($event->getJob()->isFailed()) {
            error_log('ジョブ ステータスは isFailed');
        }

        if ($event->getJob()->isRunning()) {
            error_log('ジョブのステータスは isRunning');
        }

        if ($event->getJob()->isNew()) {
            error_log('ジョブステータスはisNew');
        }
    }
}

そして、ここにリスナーを追加するための私のservice.ymlがあります

サービス:
    ジョブイベントリスナー:
      クラス: ####\SupportBundle\Listener\JobStateChangeListener
      タグ:
            - { 名前: jms_job_queue.job_state_change 、メソッド: onJobStateChange }

JMSjobQueueBundleディスパッチイベントの方法は次のとおりですhttps://github.com/schmittjoh/JMSJobQueueBundle/blob/master/Command/RunCommand.php#L182

更新: ISSUE は、app/console jms-job-queue:run my listener を実行したときに onJobStateChange func に記述された error_log ではなく、リッスンしていないことを意味する場合があります。私が間違っていることを教えてください。

4

1 に答える 1

4

app/console が --jms-job-id を見つけられないため、app/console ファイルを変更する必要があります。JMS\JobQueueBundle\Console\Application を使用します。その後、正常に動作します。

于 2012-12-18T18:40:49.800 に答える