2

在实现 JobQueueEvent 时,我的监听器遇到了一些问题,这是我的监听器类

类 JobStateChangeListener {

    函数 onJobStateChange(StateChangeEvent $event) {

        if ($event->getJob()->isFinished()) {
            error_log('作业状态已完成');
        }

        if ($event->getJob()->isPending()) {
            error_log('作业状态为 isPending');
        }

        if ($event->getJob()->isFailed()) {
            error_log('作业状态为失败');
        }

        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 not error_log 写入 onJobStateChange func 时,这可能意味着没有在听。让我知道我做错了什么。

4

1 回答 1

4

因为 app/console 找不到 --jms-job-id,你需要更改你的 app/console 文件,只需替换 use Symfony\Bundle\FrameworkBundle\Console\Application;使用 JMS\JobQueueBundle\Console\Application;然后它会正常工作。

于 2012-12-18T18:40:49.800 回答