lusong

Results 5 issues of lusong

lts admin如果长时间不使用,会隔一段时间挂掉。 原因是admin使用内嵌的jetty启动的,jetty会把lts admin的war包解压到根目录下的/tmp,而这个tmp目录如果长时间没有更新,会被cron任务定时删除的,删除后就会出现页面打开只有文字,js、css都加载不出来。 解决方案: 修改lts-admin.sh脚本,其中启动那段改为如下的,新增了一个-D参数,保证war解压到这个目录,不会被删掉。 nohup "$JAVA" **-Djava.io.tmpdir=/home/work/tmp** -cp "$CLASSPATH" $JVMFLAGS $LTS_MAIN "$CONF_HOME" > "$_LTS_DAEMON_OUT" 2>&1 < /dev/null &

使用realTaskId查询日志,不支持taskId

单元测试类里面 context中的bizlogger为null

addRepeatJobForInterval()修改的bug, 主要两点: nextTriggerTime 要大于getLastGenerateTriggerTime(),每一轮都要大于上一轮的getLastGenerateTriggerTime。 防止上次生成的job正在执行时,这轮又可以生成重复的可执行job,因为这里是通过数据库taskid和tasktracker 唯一索引去重的。原来的逻辑会在上一轮的job正在执行时,生成重复的job。 另一点: 第一次生成job时,lastGenerateTriggerTime应该为0,而不是now。因为如果是now的话,nextTriggerTime 有可能选择时小于now,导致少生成一次job。 逻辑已经测过,不会多生成job,也不会少生成job。

假如job repeatCount为5,重试次数设置为5次,那么前面4次repeat都会比较retry的时间和下次repeat job的时间. 而最后一次repeat job会把重试次数5次用完。具体看注释。 原来的逻辑会导致job永远不会结束执行,因为repeatedCount一直没有变,永远不能时repeatCount变为5,循环执行下去!