@cyysu
2017-10-10T07:50:27.000000Z
字数 9323
阅读 1171
- 时间:2017年10月7日
- 作者:Kali
- 邮箱:cyysu.github.io@gmail.com
- 版本:3.0
- 描述:分布式调度系统 - opencron
分布式调度系统
一个功能完善且通用的开源定时任务调度系统,拥有先进可靠的自动化任务管理调度功能,提供可操作的web图形化管理满足多种场景下各种复杂的定时任务调度,同时集成了linux实时监控,webssh。# 更详细的介绍请看下面网址:https://github.com/wolfboys/opencron
# 安装JDK1.7以上# 直接下载解压即可,我这里为了演示在我的agent端安装的jdklyx@lyx-virtual-machine:~$ tar xf jdk-8u111-linux-x64.tar.gz# 添加下面内容到 ~/.bashrcJAVA_HOME=/home/lyx/opencron/jdk1.8.0_111export PATH=$JAVA_HOME/bin:$PATH# 生效环境变量lyx@lyx-virtual-machine:/opt$ source ~/.bashrc# 下载github源代码mj@DZ:~/桌面/Linux$ git clone https://github.com/wolfboys/opencron.git# 进入目标目录,准备编译,截取部分内容mj@DZ:~/桌面/Linux$ cd opencron/# 如果没有Maven的话,该脚本会自动下载依赖mj@DZ:~/桌面/Linux/opencron$ sh build.sh-ne \E[1;32m--------------------------------------------/ \/ ___ _ __ ___ _ __ ___ _ __ ___ _ __ \/ / _ \| '_ \ / _ \ '_ \ / __| '__/ _ \| '_ \ \/ | (_) | |_) | __/ | | | (__| | | (_) | | | | \\ \___/| .__/ \___|_| |_|\___|_| \___/|_| |_| /\ |_| /\ /\ --opencron,Let's crontab easy! /---------------------------------------------ne \E[0mbuild.sh: 97: [: -ne: unexpected operator-e [\E[1;32mopencron\E[0m] \E[1;37mbuild opencron Starting...\E[0m# 编译完之后的效果,部分截图[INFO] Installing /home/mj/桌面/Linux/opencron/opencron-server/pom.xml to /home/mj/.m2/repository/org/opencron/opencron-server/1.1.0-RELEASE/opencron-server-1.1.0-RELEASE.pom[INFO] Installing /home/mj/桌面/Linux/opencron/opencron-server/target/opencron-server-1.1.0-RELEASE-sources.jar to /home/mj/.m2/repository/org/opencron/opencron-server/1.1.0-RELEASE/opencron-server-1.1.0-RELEASE-sources.jar[INFO] ------------------------------------------------------------------------[INFO] Reactor Summary:[INFO][INFO] opencron ........................................... SUCCESS [ 0.771 s][INFO] opencron-common .................................... SUCCESS [ 8.001 s][INFO] opencron-agent ..................................... SUCCESS [ 2.204 s][INFO] opencron-server .................................... SUCCESS [ 4.041 s][INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 15.167 s[INFO] Finished at: 2017-10-07T14:20:50+08:00[INFO] Final Memory: 49M/727M[INFO] -------------------------------------------------------------------------e [\E[1;32mopencron\E[0m] \E[1;37mbuild opencron @ Version \E[1;34m1.1.0-RELEASE\E[0m successfully! please goto\E[0m \E[1;32m/home/mj/桌面/Linux/opencron/build/dist\E[0m# 此时我们发现源代码的目录下面多出了build目录mj@DZ:~/桌面/Linux/opencron$ lsbuild checkstyle.xml LICENSE.txt opencron-common pom.xmlbuild.sh header.txt opencron-agent opencron-server README.md# 查看目标文件mj@DZ:~/桌面/Linux/opencron/build/dist$ pwd/home/mj/桌面/Linux/opencron/build/distmj@DZ:~/桌面/Linux/opencron/build/dist$ lsopencron-agent-1.1.0-RELEASE.tar.gz opencron-server.war# 复制Agent到需要管理的机器上mj@DZ:~/桌面/Linux/opencron/build/dist$ scp opencron-agent-1.1.0-RELEASE.tar.gz root@10.0.0.145:/opt# 进入被管理机器lyx@lyx-virtual-machine:/opt$ tar xf opencron-agent-1.1.0-RELEASE.tar.gz# 查看文件内容lyx@lyx-virtual-machine:/opt/opencron-agent$ tree -L 2 ..├── bin ---服务管理目录│ ├── kill.sh│ ├── monitor.sh│ ├── opencron.sh│ ├── setclasspath.sh│ ├── shutdown.sh│ └── startup.sh├── conf ---服务配置目录│ ├── conf.properties│ └── log4j.properties├── lib ---服务依赖目录│ ├── commons-cli-1.4.jar│ ├── commons-codec-1.10.jar│ ├── commons-exec-1.3.jar│ ├── commons-io-2.4.jar│ ├── commons-lang-2.4.jar│ ├── commons-lang3-3.1.jar│ ├── commons-logging-1.1.1.jar│ ├── cron4j-2.2.5.jar│ ├── fastjson-1.2.31.jar│ ├── freemarker-2.3.20.jar│ ├── hamcrest-core-1.3.jar│ ├── HikariCP-java6-2.3.13.jar│ ├── httpclient-4.5.3.jar│ ├── httpcore-4.4.1.jar│ ├── jackson-annotations-2.7.0.jar│ ├── jackson-core-2.7.4.jar│ ├── jackson-databind-2.7.4.jar│ ├── jackson-module-jaxb-annotations-2.7.4.jar│ ├── junit-4.11.jar│ ├── libthrift-0.10.0.jar│ ├── log4j-1.2.16.jar│ ├── mchange-commons-java-0.2.11.jar│ ├── netty-buffer-4.1.5.Final.jar│ ├── netty-codec-4.1.5.Final.jar│ ├── netty-codec-http-4.1.5.Final.jar│ ├── netty-common-4.1.5.Final.jar│ ├── netty-handler-4.1.5.Final.jar│ ├── netty-resolver-4.1.5.Final.jar│ ├── netty-socketio-1.7.12.jar│ ├── netty-transport-4.1.5.Final.jar│ ├── netty-transport-native-epoll-4.1.5.Final.jar│ ├── opencron-agent-1.1.0-RELEASE.jar│ ├── opencron-common-1.1.0-RELEASE.jar│ ├── protostuff-api-1.0.12.jar│ ├── protostuff-collectionschema-1.0.12.jar│ ├── protostuff-core-1.0.12.jar│ ├── protostuff-runtime-1.0.12.jar│ ├── quartz-2.3.0.jar│ ├── slf4j-api-1.7.21.jar│ └── slf4j-log4j12-1.7.21.jar├── logs ---服务日志目录│ ├── error.out│ └── opencron.out└── temp ---服务临时目录5 directories, 50 fileslyx@lyx-virtual-machine:/opt/opencron-agent$# 启动agent -P:指定端口 -p:指定连接密码 默认端口:密码为 1577:opencronlyx@lyx-virtual-machine:/opt/opencron-agent$ sh ./bin/startup.sh -P10001 -p123456# Agent启动日志如下,当可以看到端口信息和start之后基本上就起来了log4j:WARN [/opt/opencron-agent/logs/opencron.out] should be System.out or System.err.log4j:WARN Using previously set target, System.out by default.log4j:WARN [/opt/opencron-agent/logs/opencron.out] should be System.out or System.err.log4j:WARN Using previously set target, System.out by default.log4j:WARN [/opt/opencron-agent/logs/opencron.out] should be System.out or System.err.log4j:WARN Using previously set target, System.out by default.log4j:WARN [/opt/opencron-agent/logs/opencron.out] should be System.out or System.err.log4j:WARN Using previously set target, System.out by default.[INFO ] 2017-10-07 13:08:00,197(0) --> [main] com.corundumstudio.socketio.SocketIOServer.startAsync(SocketIOServer.java:130): Session store / pubsub factory used: MemoryStoreFactory (local session store only)2017-10-07 13:08:00,197 INFO (com.corundumstudio.socketio.SocketIOServer:130) - Session store / pubsub factory used: MemoryStoreFactory (local session store only)[INFO ] 2017-10-07 13:08:00,373(176) --> [nioEventLoopGroup-2-1] com.corundumstudio.socketio.SocketIOServer$1.operationComplete(SocketIOServer.java:155): SocketIO server started at port: 175022017-10-07 13:08:00,373 INFO (com.corundumstudio.socketio.SocketIOServer:155) - SocketIO server started at port: 17502[INFO ] 2017-10-07 13:08:00,375(178) --> [main] org.opencron.agent.Bootstrap.start(Bootstrap.java:215): [opencron]agent started @ port:10001,pid:29082017-10-07 13:08:00,375 INFO (org.opencron.agent.Bootstrap:215) - [opencron]agent started @ port:10001,pid:2908# 我们的Agent端部署完毕之后,下面开始部署我们的server端,进入tomacat目录,如果没有tomcat的需要自己去下载,解压之后就可以使用mj@DZ:/opt/apache-tomcat-7.0.81$ pwd/opt/apache-tomcat-7.0.81# 进入web跟目录mj@DZ:/opt/apache-tomcat-7.0.81$ cd webapps/# 如果仅仅是测试使用,删除所有文件mj@DZ:/opt/apache-tomcat-7.0.81/webapps$ rm -rf ./*# 建立一个ROOT文件夹mj@DZ:/opt/apache-tomcat-7.0.81/webapps$ mkdir ROOT# 解压服务器war文件 ,然后删除warmj@DZ:/opt/apache-tomcat-7.0.81/webapps$ jar -xvf server.war# 解压之后的目录mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT$ pwd/opt/apache-tomcat-7.0.81/webapps/ROOTmj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT$ lsMETA-INF static WEB-INF# 进入配置文件目录mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes$ pwd/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classesmj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes$ lsapplicationContext-datasource.xml config.propertiesapplicationContext-mvc.xml log4j.propertiesapplicationContext-place.xml org/applicationContext-websocket.xml# 修改数据连接串,这里重点是修改用户名、密码以及连接IPmj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes$ cat config.propertiesjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/opencron?useUnicode=true&characterEncoding=utf8&useCursorFetch=true&autoReconnect=true&failOverReadOnly=falsejdbc.username=rootjdbc.password=root#hibernatehibernate.dialect=org.hibernate.dialect.MySQL5Dialecthibernate.show_sql=truehibernate.format_sql=falsehibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContexthibernate.cache.provider_class=net.sf.ehcache.hibernate.EhCacheProviderhibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactoryhibernate.cache.use_second_level_cache=falsehibernate.cache.use_query_cache=falsejdbc.use_scrollable_resultset=false#单一登陆,同一用户只能在一处登陆,如多处登陆,后登陆的会把前面已经登陆的统统踢下线(为了安全考虑,默认是true,即不允许多段同时登陆)opencron.singlelogin=true#agent端自动注册的keyopencron.autoRegKey=opencron@2016#agent监控服务端口opencorn.monitorPort=17502# 服务器安装mysql,在安装的过程中会提示你设置root的密码mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes$ sudo apt-get install mysql-server# 连接mysqlmj@DZ:~$ mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1085Server version: 5.7.19-0ubuntu0.16.04.1 (Ubuntu)Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql># 创建opencron数据库,里面的表在连接时会自动创建mysql> create database opencron;# 查看数据库mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || abccs || mysql || opencron || performance_schema || sys |+--------------------+6 rows in set (0.00 sec)# 退出数据库mysql> exitBye
mj@DZ:/opt/apache-tomcat-7.0.81/bin$ pwd/opt/apache-tomcat-7.0.81/binmj@DZ:/opt/apache-tomcat-7.0.81/bin$ ./startup.shUsing CATALINA_BASE: /opt/apache-tomcat-7.0.81Using CATALINA_HOME: /opt/apache-tomcat-7.0.81Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.81/tempUsing JRE_HOME: /opt/jdk1.8.0_111/jreUsing CLASSPATH: /opt/apache-tomcat-7.0.81/bin/bootstrap.jar:/opt/apache-tomcat-7.0.81/bin/tomcat-juli.jarTomcat started.mj@DZ:/opt/apache-tomcat-7.0.81/bin$# 如果出现端口被占用的问题,修改下面的server.xml配置中的端口mj@DZ:/opt/apache-tomcat-7.0.81/conf$ pwd/opt/apache-tomcat-7.0.81/confmj@DZ:/opt/apache-tomcat-7.0.81/conf$ vim server.xml# 不出意外的话访问 ip:端口 就可以看到下面的页面


注意:我这里进行了一次任务作业,所以会出现作业数量,默认是没有的。
支付宝 微信