为什么Spring调度程序意外停止

时间:2018-04-18 02:59:05

标签: spring

我们在spring context xml文件中定义了以下调度程序。

<!-- Item Scheduling -->
<task:scheduler id="itemScheduler" pool-size="1"/>
<task:scheduled-tasks scheduler="itemScheduler" >
    <task:scheduled ref="itemQueuePoller" method="poll" fixed-delay="10000"/>
</task:scheduled-tasks>

及以下是执行的java代码

@Service("itemQueuePoller")
public class ItemQueuePoller {

private final Logger LOG = getLogger(ItemQueuePoller.class);

private ItemQueueDao itemQueueDao;
private ItemHandler itemHandler;

@Autowired
public ItemQueuePoller(@Qualifier("itemQueueDao") ItemQueueDao itemQueueDao,
                              @Qualifier("itemHandler") ItemHandler itemHandler) {
    this.itemQueueDao= itemQueueDao;
    this.itemHandler= itemHandler;
}

//scheduled via batch application context
public void poll() {
    try {
        List<ItemQueueEntry> entries = itemQueueDao.findNextBatch();

        if (entries == null || entries.isEmpty()) return;

        itemHandler.processJob(entries);

    } catch (Exception e) {
        LOG.error("Exception occurred while processing Queue Items due to: ", e);
        throw new RuntimeException(e);
    }
}
}

这种情况每天都很好,但有一天它只运行了两次然后自动停止而没有任何例外。

当我们重新启动应用程序时,它开始正常工作。

我的问题是为什么它会自动停止?

0 个答案:

没有答案
相关问题