tbschedule
tbschedule copied to clipboard
调度启动时,清理过期任务信息报异常
调度启动时,会试图清理之前已经过期的任务信息:
// 清除已经过期1天的TASK,OWN_SIGN的组合。超过一天没有活动server的视为过期
this.scheduleCenter.clearExpireTaskTypeRunningInfo(baseTaskType, ScheduleUtil.getLocalIP() + "清除过期OWN_SIGN信息",this.taskTypeInfo.getExpireOwnSignInterval());
如果该目录不为空,就会报异常:
2019-06-20 14:43:55 ERROR c.t.p.s.s.TBScheduleManagerFactory - strategy 获取对应的java or bean 出错,schedule并没有加载该任务,请确认DemoTask-strategy
org.apache.zookeeper.KeeperException$NotEmptyException: KeeperErrorCode = Directory not empty for /schedule/demo/baseTaskType/demoTask1/demoTask1
at org.apache.zookeeper.KeeperException.create(KeeperException.java:125)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.delete(ZooKeeper.java:873)
at com.taobao.pamirs.schedule.zk.ZKTools.deleteTree(ZKTools.java:43)
at com.taobao.pamirs.schedule.zk.ScheduleDataManager4ZK.clearExpireTaskTypeRunningInfo(ScheduleDataManager4ZK.java:526)
at com.taobao.pamirs.schedule.taskmanager.TBScheduleManager.<init>(TBScheduleManager.java:103)
at com.taobao.pamirs.schedule.taskmanager.TBScheduleManagerStatic.<init>(TBScheduleManagerStatic.java:25)
at com.taobao.pamirs.schedule.strategy.TBScheduleManagerFactory.createStrategyTask(TBScheduleManagerFactory.java:142)
at com.taobao.pamirs.schedule.strategy.TBScheduleManagerFactory.reRunScheduleServer(TBScheduleManagerFactory.java:256)
at com.taobao.pamirs.schedule.strategy.TBScheduleManagerFactory.reRegisterManagerFactory(TBScheduleManagerFactory.java:195)
at com.taobao.pamirs.schedule.strategy.TBScheduleManagerFactory.refresh(TBScheduleManagerFactory.java:181)
at com.taobao.pamirs.schedule.strategy.ManagerFactoryTimerTask.run(TBScheduleManagerFactory.java:454)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
不影响调度
不影响调度
但是,报这个异常,就说明清理不掉过期信息,对吧?这样是不是不符合作者的设计目的和思路?
不影响调度
但是,报这个异常,就说明清理不掉过期信息,对吧?这样是不是不符合作者的设计目的和思路?
对的,提issue的目的也是想看哪位愿意pr