Code Monkey home page Code Monkey logo

tbschedule's People

Contributors

dependabot[bot] avatar fucku996 avatar nmyphp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tbschedule's Issues

单次调度执行次数的限制

需求

每次调度,希望selectTasks()只执行一次

现状

每次调度,selectTasks()函数会一直被执行,直到取不到数据才停止

后台管理界面优化

如果哪位前端同学感兴趣,可以帮忙把tbschedule后台管理界面优化一下,现在的界面还是1.0版本,非常朴素~

同学,您这个项目引入了47个开源组件,存在6个漏洞,辛苦升级一下

检测到 nmyphp/tbschedule 一共引入了47个开源组件,存在6个漏洞

漏洞标题:Apache Log4j 代码问题漏洞
缺陷组件:log4j:[email protected]
漏洞编号:CVE-2019-17571
漏洞描述:Apache Log4j是美国阿帕奇(Apache)基金会的一款基于Java的开源日志记录工具。
Apache Log4j 1.2版本中存在代码问题漏洞。攻击者可利用该漏洞执行代码。
国家漏洞库信息:https://www.cnvd.org.cn/flaw/show/CNVD-2020-00502
影响范围:[0, ∞)
最小修复版本:
缺陷组件引入路径:com.taobao.pamirs.schedule:[email protected]>org.apache.zookeeper:[email protected]>log4j:[email protected]

另外还有6个漏洞,详细报告:https://mofeisec.com/jr?p=iec386

编译时单元测试报错

报错信息如下:

2022-03-17 19:29:15 WARN org.apache.zookeeper.ClientCnxn - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
        at java.base/sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:na]
        at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[na:na]
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
2022-03-17 19:29:15 INFO org.apache.zookeeper.ClientCnxn - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
2022-03-17 19:29:15 WARN org.apache.zookeeper.ClientCnxn - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
        at java.base/sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:na]
        at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[na:na]
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
2022-03-17 19:29:16 INFO org.apache.zookeeper.ZooKeeper - Session: 0x0 closed
2022-03-17 19:29:16 INFO org.apache.zookeeper.ClientCnxn - EventThread shut down
Tests run: 4, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.638 sec <<< FAILURE!
getTree(com.taobao.pamirs.schedule.zk.ZKToolsTest)  Time elapsed: 0.147 sec  <<< ERROR!
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /schedule
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
        at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1045)
        at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1073)
        at com.taobao.pamirs.schedule.zk.ZKTools.getTree(ZKTools.java:48)
        at com.taobao.pamirs.schedule.zk.ZKToolsTest.getTree(ZKToolsTest.java:46)

对应的单元测试:ZKToolsTest.getTree

Dependency org.apache.zookeeper:zookeeper, leading to CVE problem

Hi, In tbschedule-3.4.1/tbschedule-core,there is a dependency org.apache.zookeeper:zookeeper:3.4.6 that calls the risk method.

CVE-2019-0201

The scope of this CVE affected version is [,3.4.14),[3.5.0-alpha, 3.5.5)

After further analysis, in this project, the main Api called is <org.apache.zookeeper.server.FinalRequestProcessor: void processRequest(org.apache.zookeeper.server.Request)>

Risk method repair link : GitHub

CVE Bug Invocation Path--

Path Length : 4

<org.apache.zookeeper.server.FinalRequestProcessor: void processRequest(org.apache.zookeeper.server.Request)>
at <org.apache.zookeeper.server.quorum.CommitProcessor: void run()> (org.apache.zookeeper.server.quorum.CommitProcessor.java:[74]) in /.m2/repository/org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.jar
at <com.taobao.pamirs.schedule.taskmanager.TBScheduleProcessorNotSleep: void startThread(int)> (com.taobao.pamirs.schedule.taskmanager.TBScheduleProcessorNotSleep.java:[119]) in /detect/unzip/tbschedule-3.4.1/tbschedule-core/target/classes
at <com.taobao.pamirs.schedule.taskmanager.TBScheduleProcessorNotSleep: void <init>(com.taobao.pamirs.schedule.taskmanager.TBScheduleManager,com.taobao.pamirs.schedule.IScheduleTaskDeal,com.taobao.pamirs.schedule.taskmanager.StatisticsInfo)> (com.taobao.pamirs.schedule.taskmanager.TBScheduleProcessorNotSleep.java:[97]) in /detect/unzip/tbschedule-3.4.1/tbschedule-core/target/classes

Dependency tree--

[INFO] com.taobao.pamirs.schedule:tbschedule-core:jar:3.4.1
[INFO] +- org.springframework:spring-context:jar:4.1.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-aop:jar:4.1.1.RELEASE:compile
[INFO] |  |  \- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  +- org.springframework:spring-beans:jar:4.1.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-core:jar:4.1.1.RELEASE:compile
[INFO] |  |  \- commons-logging:commons-logging:jar:1.1.3:compile
[INFO] |  \- org.springframework:spring-expression:jar:4.1.1.RELEASE:compile
[INFO] +- javax.servlet:servlet-api:jar:2.5:compile
[INFO] +- commons-lang:commons-lang:jar:2.4:compile
[INFO] +- com.google.code.gson:gson:jar:2.1:compile
[INFO] +- org.apache.zookeeper:zookeeper:jar:3.4.6:compile
[INFO] |  +- log4j:log4j:jar:1.2.16:compile
[INFO] |  +- jline:jline:jar:0.9.94:compile
[INFO] |  \- io.netty:netty:jar:3.7.0.Final:compile
[INFO] +- org.slf4j:slf4j-api:jar:1.6.1:compile
[INFO] \- org.projectlombok:lombok:jar:1.16.16:compile

Suggested solutions:

Update dependency version

Thank you very much.

同项目衍进交流

hi,我们这也是内部使用tbschedule多年(5年以上)了,这两年也做了相应的内部功能开源+演进,项目在

https://github.com/jasonjoo2010/tbschedule

主要做了多存储后端、springboot支持、xml支持、填坑等相关功能

后续可以多交流,另外可以做readme项目链接交换嘛

hiahia

项目编译报错找不到com.sun.tools.javac.code.TypeTags

执行 mvn compile package -X时,报错如下:

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] tbschedule 3.4.1 ................................... SUCCESS [  0.071 s]
[INFO] tbschedule-core 3.4.1 .............................. FAILURE [ 13.297 s]
[INFO] tbschedule-console 3.4.1 ........................... SUCCESS [  0.911 s]
[INFO] tbschedule-example 3.4.0 ........................... FAILURE [  0.220 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------


Caused by: java.lang.ExceptionInInitializerError
    at lombok.javac.handlers.HandleGetter.<clinit> (HandleGetter.java:303)
    at java.lang.Class.forName0 (Native Method)
    at java.lang.Class.forName (Class.java:398)
    at lombok.core.SpiLoadUtil$1$1.next (SpiLoadUtil.java:111)
    at lombok.javac.HandlerLibrary.loadAnnotationHandlers (HandlerLibrary.java:171)
    at lombok.javac.HandlerLibrary.load (HandlerLibrary.java:156)
    at lombok.javac.JavacTransformer.<init> (JavacTransformer.java:44)
    at lombok.javac.apt.LombokProcessor.init (LombokProcessor.java:87)
    at lombok.core.AnnotationProcessor$JavacDescriptor.want (AnnotationProcessor.java:87)
    at lombok.core.AnnotationProcessor.init (AnnotationProcessor.java:140)
    at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.init (AnnotationProcessor.java:69)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init> (JavacProcessingEnvironment.java:686)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next (JavacProcessingEnvironment.java:786)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs (JavacProcessingEnvironment.java:881)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run (JavacProcessingEnvironment.java:1222)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing (JavacProcessingEnvironment.java:1334)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations (JavaCompiler.java:1258)
    at com.sun.tools.javac.main.JavaCompiler.compile (JavaCompiler.java:936)
    at com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0 (JavacTaskImpl.java:104)
    at com.sun.tools.javac.api.JavacTaskImpl.handleExceptions (JavacTaskImpl.java:147)
    at com.sun.tools.javac.api.JavacTaskImpl.doCall (JavacTaskImpl.java:100)
    at com.sun.tools.javac.api.JavacTaskImpl.call (JavacTaskImpl.java:94)
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:126)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:169)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:785)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:129)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.code.TypeTags
    at java.lang.ClassLoader.findClass (ClassLoader.java:718)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:588)
    at lombok.launch.ShadowClassLoader.loadClass (ShadowClassLoader.java:422)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:521)
    at java.lang.Class.forName0 (Native Method)
    at java.lang.Class.forName (Class.java:315)
    at lombok.javac.JavacTreeMaker$SchroedingerType.getFieldCached (JavacTreeMaker.java:156)
    at lombok.javac.JavacTreeMaker$TypeTag.typeTag (JavacTreeMaker.java:244)
    at lombok.javac.Javac.<clinit> (Javac.java:155)
    at lombok.javac.handlers.HandleGetter.<clinit> (HandleGetter.java:303)
    at java.lang.Class.forName0 (Native Method)
    at java.lang.Class.forName (Class.java:398)
    at lombok.core.SpiLoadUtil$1$1.next (SpiLoadUtil.java:111)
    at lombok.javac.HandlerLibrary.loadAnnotationHandlers (HandlerLibrary.java:171)
    at lombok.javac.HandlerLibrary.load (HandlerLibrary.java:156)
    at lombok.javac.JavacTransformer.<init> (JavacTransformer.java:44)
    at lombok.javac.apt.LombokProcessor.init (LombokProcessor.java:87)
    at lombok.core.AnnotationProcessor$JavacDescriptor.want (AnnotationProcessor.java:87)
    at lombok.core.AnnotationProcessor.init (AnnotationProcessor.java:140)
    at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.init (AnnotationProcessor.java:69)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init> (JavacProcessingEnvironment.java:686)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next (JavacProcessingEnvironment.java:786)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs (JavacProcessingEnvironment.java:881)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run (JavacProcessingEnvironment.java:1222)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing (JavacProcessingEnvironment.java:1334)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations (JavaCompiler.java:1258)
    at com.sun.tools.javac.main.JavaCompiler.compile (JavaCompiler.java:936)
    at com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0 (JavacTaskImpl.java:104)
    at com.sun.tools.javac.api.JavacTaskImpl.handleExceptions (JavacTaskImpl.java:147)
    at com.sun.tools.javac.api.JavacTaskImpl.doCall (JavacTaskImpl.java:100)
    at com.sun.tools.javac.api.JavacTaskImpl.call (JavacTaskImpl.java:94)
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:126)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:169)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:785)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:129)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command

偶尔出现 KeeperErrorCode = ConnectionLoss

schedule 运行2、3天会出现,如下大批量的报错,zookeeper free 只有100多M,不知道是什么情况,请教大佬!
[2019-07-01 16:36:03,609] [syncErpOrderNonRealTime_14090001-271-HeartBeat] (ZooKeeper.java:684) INFO org.apache.zookeeper.ZooKeeper - Session: 0x16b9bb69d5f06b9 closed
[2019-07-01 16:36:03,609] [syncErpOrderNonRealTime_14090001-271-HeartBeat] (ZooKeeper.java:438) INFO org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=10.8.1.248:2181
sessionTimeout=60000 watcher=com.taobao.pamirs.schedule.zk.ZKManager$1@6c315b5
[2019-07-01 16:36:03,612] [syncErpOrderNonRealTime_14090001-271-HeartBeat-EventThread] (ZKManager.java:77) INFO com.taobao.pamirs.schedule.zk.ZKManager - 收到ZK连接成功事件!
[2019-07-01 16:36:03,613] [syncErpOrderNonRealTime_14090001-271-HeartBeat] (TBScheduleManager.java:413) ERROR com.taobao.pamirs.schedule.taskmanager.HeartBeatTimerTask - KeeperErrorCode = Connect
ionLoss for /schedule/erp98/baseTaskType/syncErpOrderNonRealTime_14090001/syncErpOrderNonRealTime_14090001/server/syncErpOrderNonRealTime_14090001$$57DB65427E4E4DA2A409EF31D46CCABA$0000000000
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /schedule/erp98/baseTaskType/syncErpOrderNonRealTime_14090001/syncErpOrderNonRealTime_14090001/s
erver/syncErpOrderNonRealTime_14090001$$57DB65427E4E4DA2A409EF31D46CCABA$0000000000
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.setData(ZooKeeper.java:1270)
at com.taobao.pamirs.schedule.zk.ScheduleDataManager4ZK.refreshScheduleServer(ScheduleDataManager4ZK.java:747)
at com.taobao.pamirs.schedule.taskmanager.TBScheduleManager.rewriteScheduleInfo(TBScheduleManager.java:195)
at com.taobao.pamirs.schedule.taskmanager.TBScheduleManagerStatic.rewriteScheduleInfo(TBScheduleManagerStatic.java:11)
at com.taobao.pamirs.schedule.taskmanager.TBScheduleManagerStatic.refreshScheduleServerInfo(TBScheduleManagerStatic.java:103)
at com.taobao.pamirs.schedule.taskmanager.HeartBeatTimerTask.run(TBScheduleManager.java:411)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)

调度启动时,清理过期任务信息报异常

调度启动时,会试图清理之前已经过期的任务信息:

// 清除已经过期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)

停止调度时,报NPE

  • 调度策略 > 停止
2019-05-23 21:32:47 INFO c.t.p.s.t.TBScheduleManager - 停止服务器 :demoTask1$10.254.90.186$9ED0AB96BD5F4015AF1ECAE3B9B45785$0000000000
2019-05-23 21:32:47 ERROR c.t.p.s.s.TBScheduleManagerFactory - 注销任务错误:strategyName=DemoTask-strategy
java.lang.NullPointerException: null
	at com.taobao.pamirs.schedule.strategy.TBScheduleManagerFactory.stopServer(TBScheduleManagerFactory.java:282)
	at com.taobao.pamirs.schedule.strategy.TBScheduleManagerFactory.reRegisterManagerFactory(TBScheduleManagerFactory.java:188)
	at com.taobao.pamirs.schedule.strategy.TBScheduleManagerFactory.refresh(TBScheduleManagerFactory.java:177)
	at com.taobao.pamirs.schedule.strategy.ManagerFactoryTimerTask.run(TBScheduleManagerFactory.java:449)
	at java.util.TimerThread.mainLoop(Timer.java:555)
	at java.util.TimerThread.run(Timer.java:505)

调度任务出现频繁无限调用

3447363F-EF72-43CF-A17A-468C53318FDA
配置表达式是一分钟执行一次:0 0/1 * * * ?
问题现象是调用频次越来越频繁,最高时到了每分钟执行一千多次,然后我在控制台操作暂停,也不生效,重启机器后回复正常了

Timer定时任务的替代方案

代码中定时任务都是用Timer实现的,JDK官方已经建议使用ScheduledThreadPoolExecutor替代,而alibaba p3c插件也建议使用ScheduledThreadPoolExecutor。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.