GithubHelp home page GithubHelp logo

xiaolongzuo / niubi-job Goto Github PK

View Code? Open in Web Editor NEW
337.0 337.0 222.0 52.62 MB

一个高可用的,专门针对定时任务的分布式任务调度框架

License: Apache License 2.0

Java 46.87% CSS 6.37% HTML 15.55% JavaScript 31.14% Batchfile 0.04% Shell 0.03%

niubi-job's People

Contributors

wzx-xle avatar xiaolongzuo 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  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

niubi-job's Issues

niubi-job-cluster启动不了

image
r如图,虽然状态是已连接,但是日志没有打印出bootstrap start successfully,也没有报任何异常,卡在这了,不知道怎么办,然后控制台也没看到节点,如图:
image

demo的jar包无法运行

demo没法运行

版本 : 0.9.4.2
niubi-job-cluster.zip [Windows版本]
控制台不是
niubi-job-console.war [web控制台war包],这个版本上传jar包空指针
niubi-job-console.war是编译新的版本
demo的jar包是博客上的版本
Uploading commondemo.png…

Node Manager点击之后,页面一直处于加载之中,无法显示

后台也报错了
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

0.9.5.x 分支 单元测试失败.

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] ------------------------------------------------------------------------

example 启动失败

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自行打包后,运行spring-example报java.lang.NoClassDefFoundError

下载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包删除可以正常运行。
请问这么处理对吗?是否会有其他隐患?

Node classloader这一层是不是可以去掉?

如果使用eclipse等开发工具进行调试的话,默认build path即是class path,运行main方法时所有classpath下的jar已经被system classloader加载了,与其这样的话不如直接把node classloader去掉,直接由system classloader负责加载lib下的jar喽。job下的jar依然由jar classloader负责加载。

关于节点间通信的疑问

您好,感谢您的分享!
请问关于源代码中,分布式框架的节点间的通信是怎么实现的?我为什么没有看见关于节点间通信的代码?
我是小白,望不吝赐教!!!

导入Eclipse并更新maven后,niubi-job-cluster的pom.xml报错

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

下载了niubi-job-0.9.6.x这个版本部署一直报错

您好,我下载了最新的下载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
希望你能帮忙看下

任务管理界面加个立即执行按钮

任务管理界面加个立即执行按钮,满足提交到QA测试是测试任务逻辑是否正常。现在也能满足,就是改cron,测试完成再改回来

BootstrapExample.start() 启动失败

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节点。

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.