xiaolongzuo / niubi-job Goto Github PK
View Code? Open in Web Editor NEW一个高可用的,专门针对定时任务的分布式任务调度框架
License: Apache License 2.0
一个高可用的,专门针对定时任务的分布式任务调度框架
License: Apache License 2.0
支持
后台也报错了
2016 Apr 12 17:35:51 INFO [LeaderSelector-0] - 127.0.0.1 is now the leader ,and has been leader 4184 time(s) before.
2016 Apr 12 17:35:51 INFO [LeaderSelector-0] - job cache has been closed.
2016 Apr 12 17:35:51 INFO [LeaderSelector-0] - begin stop scheduler manager.
2016 Apr 12 17:35:51 INFO [LeaderSelector-0] - 127.0.0.1 has been shutdown. [Data{ip='127.0.0.1', state='Backup', runningJobCount=0}]
2016 Apr 12 17:35:51 INFO [LeaderSelector-0] - clear node successfully.
2016 Apr 12 17:35:51 WARN [LeaderSelector-0] - 127.0.0.1 startup failed,relinquish leadership.
java.lang.NullPointerException
at com.zuoxiaolong.niubi.job.api.curator.StandbyJobApiImpl.getAllJobs(StandbyJobApiImpl.java:42)
at com.zuoxiaolong.niubi.job.cluster.node.StandbyNode$StandbyLeadershipSelectorListener.startupJobs(StandbyNode.java:158)
at com.zuoxiaolong.niubi.job.cluster.node.StandbyNode$StandbyLeadershipSelectorListener.acquireLeadership(StandbyNode.java:149)
at com.zuoxiaolong.niubi.job.cluster.node.AbstractClusterJobNode$AbstractLeadershipSelectorListener.takeLeadership(AbstractClusterJobNode.java:106)
at org.apache.curator.framework.recipes.leader.LeaderSelector$WrappedListener.takeLeadership(LeaderSelector.java:536)
at org.apache.curator.framework.recipes.leader.LeaderSelector.doWork(LeaderSelector.java:399)
at org.apache.curator.framework.recipes.leader.LeaderSelector.doWorkLoop(LeaderSelector.java:443)
at org.apache.curator.framework.recipes.leader.LeaderSelector.access$100(LeaderSelector.java:64)
at org.apache.curator.framework.recipes.leader.LeaderSelector$2.call(LeaderSelector.java:245)
at org.apache.curator.framework.recipes.leader.LeaderSelector$2.call(LeaderSelector.java:239)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)^C
git clone https://github.com/xiaolongzuo/niubi-job.git
git checkout -b 0.9.5.x 0.9.5.x
mvn clean package
java.lang.NullPointerException
at com.zuoxiaolong.niubi.job.service.impl.AbstractSpringContextTest.getExampleJarFile(AbstractSpringContextTest.java:58)
发现好像是原example项目变成sample项目后,测试代码里面的jar的名称和package的名称没有改。
将example换成sample后(diff文件:
diff.txt
)
改动后依然失败,觉得问题应该出在ClassLoader.getSystemResource("niubi-job-sample-spring.jar")
上,尝试
cp ./niubi-job-sample-spring.jar niubi-job-framework/niubi-job-service/src/test/resources
就可以了。
但感觉放在resources下也不是一个正规的办法,不知道没将sample合并前是怎么放这个jar的?
PS:单元测试花了挺长时间,找个时间看看到底哪里耗时。
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] com.zuoxiaolong:niubi-job .......................... SUCCESS [ 0.722 s]
[INFO] com.zuoxiaolong:niubi-job-test ..................... SUCCESS [ 2.285 s]
[INFO] com.zuoxiaolong:niubi-job-framework ................ SUCCESS [ 0.005 s]
[INFO] com.zuoxiaolong:niubi-job-core ..................... SUCCESS [ 9.810 s]
[INFO] com.zuoxiaolong:niubi-job-api ...................... SUCCESS [01:01 min]
[INFO] com.zuoxiaolong:niubi-job-scanner .................. SUCCESS [ 1.183 s]
[INFO] com.zuoxiaolong:niubi-job-scheduler ................ SUCCESS [ 0.922 s]
[INFO] com.zuoxiaolong:niubi-job-spring ................... SUCCESS [ 0.434 s]
[INFO] com.zuoxiaolong:niubi-job-cluster .................. SUCCESS [ 3.065 s]
[INFO] com.zuoxiaolong:niubi-job-persistent ............... SUCCESS [ 6.438 s]
[INFO] com.zuoxiaolong:niubi-job-service .................. SUCCESS [06:02 min]
[INFO] com.zuoxiaolong:niubi-job-console .................. SUCCESS [ 3.412 s]
[INFO] com.zuoxiaolong:niubi-job-parent ................... SUCCESS [ 0.535 s]
[INFO] com.zuoxiaolong:niubi-job-samples .................. SUCCESS [ 0.292 s]
[INFO] com.zuoxiaolong:niubi-job-sample-spring ............ SUCCESS [ 1.123 s]
[INFO] com.zuoxiaolong:niubi-job-sample-common ............ SUCCESS [ 0.422 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 07:34 min
[INFO] Finished at: 2016-05-03T03:47:07+08:00
[INFO] Final Memory: 81M/637M
[INFO] ------------------------------------------------------------------------
java.lang.RuntimeException:can't find SchedulerJobDescriptor for [com.zuoxiaolong.niubi.job.example.common.job.Job1.job1Test]
com.zuoxiaolong.niubi.job.scheduler.JobEnvironmentCache.findScheduleJobDescriptor(JobEnvironmentCache.java:95)
com.zuoxiaolong.niubi.job.scheduler.DefaultManualScheduleManager.startupManual(DefaultManualScheduleManager.java:66)
com.zuoxiaolong.niubi.job.cluster.node.MasterSlaveNode$JobCacheListener.executeOperation(MasterSlaveNode.java:355)
com.zuoxiaolong.niubi.job.cluster.node.MasterSlaveNode$JobCacheListener.childEvent(MasterSlaveNode.java:331)
org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:516)
org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:510)
org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerContainer.java:92)
com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
org.apache.curator.framework.listen.ListenerContainer.forEach(ListenerContainer.java:83)
org.apache.curator.framework.recipes.cache.PathChildrenCache.callListeners(PathChildrenCache.java:507)
org.apache.curator.framework.recipes.cache.EventOperation.invoke(EventOperation.java:35)
org.apache.curator.framework.recipes.cache.PathChildrenCache$9.run(PathChildrenCache.java:759)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
下载Master打包部署后,上传niubi-job-sample-common.jar包可以正常运行,但是niubi-job-sample-spring.jar报错。
java.lang.NoClassDefFoundError:org/springframework/context/ApplicationContext
java.lang.Class.getDeclaredConstructors0(null:-2)
java.lang.Class.privateGetDeclaredConstructors(null:-1)
java.lang.Class.getConstructor0(null:-1)
java.lang.Class.getConstructor(null:-1)
com.zuoxiaolong.niubi.job.scheduler.JobEnvironmentCache.createJobBeanFactory(JobEnvironmentCache.java:142)
com.zuoxiaolong.niubi.job.scheduler.JobEnvironmentCache.loadJobEnvironment(JobEnvironmentCache.java:116)
com.zuoxiaolong.niubi.job.scheduler.DefaultManualScheduleManager.startupManual(DefaultManualScheduleManager.java:58)
com.zuoxiaolong.niubi.job.cluster.node.MasterSlaveNode$JobCacheListener.executeOperation(MasterSlaveNode.java:355)
com.zuoxiaolong.niubi.job.cluster.node.MasterSlaveNode$JobCacheListener.childEvent(MasterSlaveNode.java:331)
分析了一下,发现niubi-job-cluster.zip中lib目录下,包含niubi-job-spring.jar这个jar包。springJob打包时按照博文“开发文档”中描述,也需要将niubi-job-spring.jar引入到相关job.jar中。二者引起冲突,目前将niubi-job-cluster.zip的lib目录下niubi-job-spring.jar包删除可以正常运行。
请问这么处理对吗?是否会有其他隐患?
如果使用eclipse等开发工具进行调试的话,默认build path即是class path,运行main方法时所有classpath下的jar已经被system classloader加载了,与其这样的话不如直接把node classloader去掉,直接由system classloader负责加载lib下的jar喽。job下的jar依然由jar classloader负责加载。
您好,感谢您的分享!
请问关于源代码中,分布式框架的节点间的通信是怎么实现的?我为什么没有看见关于节点间通信的代码?
我是小白,望不吝赐教!!!
IDE:Eclipse Java EE IDE for Web Developers Mars.2 Release (4.5.2)
现象:
将整个项目通过maven导入,并更新项目后,niubi-job-cluster子模块的pom.xml报错:
Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-antrun-plugin:1.8:run (execution: prepared-build, phase: test-compile)
分析原因:
表示m2e在其执行maven的生命周期管理时没有定义该插件,所以提示出错
解决:
1、进入Window—>Preferences—>Maven配置,进入Lifecycle Mapping设置项
2、点击 【Open workspace lifecycle mappings metadata】,在编辑器打开了配置文件
3、复制如下的xml进入,并保存:
<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<goals>
<goal>run</goal>
</goals>
<versionRange>[1.8,)</versionRange>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
4、重新打开Lifecycle Mapping设置项,点击【Reload workspace lifecycle mappings metadata】,并重新更新项目即可
参考:
http://www.cnblogs.com/hzhuxin/archive/2012/06/17/2552998.html
难道在tomcat 8 下不行吗
您好,我下载了最新的下载niubi-job-0.9.6.x这个版本部署后,从console上传了LZ的个人网站上下载的niubi-job-sample-common.jar,niubi-job-sample-spring.jar包。点击execute后,一直启动不了job,一直fail,其余的部署都正常,后台报错一直提示
2016 九月 25 22:10:37 ERROR [PathChildrenCache-0] - handle operation failed. Job
Data {groupName='com.zuoxiaolong.niubi.job.sample.spring.job.Job2', jobName='tes
t', jarFileName='niubi-job-sample-spring.jar', packagesToScan='com.zuoxiaolong',
jobCron='0/15 * * * * ?', containerType='Spring', jobState='Shutdown', misfireP
olicy='None', jobOperationLogId='2d8193c9-d967-48ba-bd8b-9537f9e8c8bf', operatio
nResult='Waiting', originalJarFileName='niubi-job-sample-spring.jar', jobOperati
on='Start', version=20, errorMessage='null'}
com.zuoxiaolong.niubi.job.core.exception.NiubiException: java.lang.ClassNotFound
Exception
at com.zuoxiaolong.niubi.job.scheduler.DefaultManualScheduleManager.star
tupManual(DefaultManualScheduleManager.java:60)
at com.zuoxiaolong.niubi.job.cluster.node.MasterSlaveNode$JobCacheListen
er.executeOperation(MasterSlaveNode.java:355)
at com.zuoxiaolong.niubi.job.cluster.node.MasterSlaveNode$JobCacheListen
er.childEvent(MasterSlaveNode.java:331)
at org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(
PathChildrenCache.java:516)
at org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(
PathChildrenCache.java:510)
at org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerC
ontainer.java:92)
at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorSer
vice.execute(MoreExecutors.java:297)
at org.apache.curator.framework.listen.ListenerContainer.forEach(Listene
rContainer.java:83)
at org.apache.curator.framework.recipes.cache.PathChildrenCache.callList
eners(PathChildrenCache.java:507)
at org.apache.curator.framework.recipes.cache.EventOperation.invoke(Even
tOperation.java:35)
at org.apache.curator.framework.recipes.cache.PathChildrenCache$9.run(Pa
thChildrenCache.java:759)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException
at com.zuoxiaolong.niubi.job.scanner.ApplicationClassLoader.loadClass(Ap
plicationClassLoader.java:165)
at com.zuoxiaolong.niubi.job.scanner.ApplicationClassLoader.loadClass(Ap
plicationClassLoader.java:93)
at com.zuoxiaolong.niubi.job.scheduler.JobEnvironmentCache.createJobBean
Factory(JobEnvironmentCache.java:140)
at com.zuoxiaolong.niubi.job.scheduler.JobEnvironmentCache.loadJobEnviro
nment(JobEnvironmentCache.java:116)
at com.zuoxiaolong.niubi.job.scheduler.DefaultManualScheduleManager.star
tupManual(DefaultManualScheduleManager.java:58)
... 17 more
希望你能帮忙看下
how to do?
任务管理界面加个立即执行按钮,满足提交到QA测试是测试任务逻辑是否正常。现在也能满足,就是改cron,测试完成再改回来
java.lang.ExceptionInInitializerError
at com.zuoxiaolong.niubi.job.cluster.startup.BootstrapExample.start(BootstrapExample.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: com.zuoxiaolong.niubi.job.core.exception.NiubiException: java.lang.IllegalArgumentException: can't find bin path.
at com.zuoxiaolong.niubi.job.cluster.startup.Bootstrap.(Bootstrap.java:117)
... 23 more
Caused by: java.lang.IllegalArgumentException: can't find bin path.
... 24 more
cluster 打成jar 后启动是正常的,但是开发环境无法启动cluster节点。
If the job jar file updated, how to do that?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.