[关闭]
@cyysu 2017-10-10T07:50:27.000000Z 字数 9323 阅读 1074

opencron调度系统

  • 时间:2017年10月7日
  • 作者:Kali
  • 邮箱:cyysu.github.io@gmail.com
  • 版本:3.0
  • 描述:分布式调度系统 - opencron

分布式调度系统


简介

  1. 一个功能完善且通用的开源定时任务调度系统,拥有先进可靠的自动化任务管理调度功能,提供可操作的web图形化管理满足多种场景下各种复杂的定时任务调度,同时集成了linux实时监控,webssh
  2. # 更详细的介绍请看下面网址:
  3. https://github.com/wolfboys/opencron

下载源码以及安装

  1. # 安装JDK1.7以上
  2. # 直接下载解压即可,我这里为了演示在我的agent端安装的jdk
  3. lyx@lyx-virtual-machine:~$ tar xf jdk-8u111-linux-x64.tar.gz
  4. # 添加下面内容到 ~/.bashrc
  5. JAVA_HOME=/home/lyx/opencron/jdk1.8.0_111
  6. export PATH=$JAVA_HOME/bin:$PATH
  7. # 生效环境变量
  8. lyx@lyx-virtual-machine:/opt$ source ~/.bashrc
  9. # 下载github源代码
  10. mj@DZ:~/桌面/Linux$ git clone https://github.com/wolfboys/opencron.git
  11. # 进入目标目录,准备编译,截取部分内容
  12. mj@DZ:~/桌面/Linux$ cd opencron/
  13. # 如果没有Maven的话,该脚本会自动下载依赖
  14. mj@DZ:~/桌面/Linux/opencron$ sh build.sh
  15. -ne \E[1;32m
  16. --------------------------------------------
  17. / \
  18. / ___ _ __ ___ _ __ ___ _ __ ___ _ __ \
  19. / / _ \| '_ \ / _ \ '_ \ / __| '__/ _ \| '_ \ \
  20. / | (_) | |_) | __/ | | | (__| | | (_) | | | | \
  21. \ \___/| .__/ \___|_| |_|\___|_| \___/|_| |_| /
  22. \ |_| /
  23. \ /
  24. \ --opencron,Let's crontab easy! /
  25. --------------------------------------------
  26. -ne \E[0m
  27. build.sh: 97: [: -ne: unexpected operator
  28. -e [\E[1;32mopencron\E[0m] \E[1;37mbuild opencron Starting...\E[0m
  29. # 编译完之后的效果,部分截图
  30. [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
  31. [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
  32. [INFO] ------------------------------------------------------------------------
  33. [INFO] Reactor Summary:
  34. [INFO]
  35. [INFO] opencron ........................................... SUCCESS [ 0.771 s]
  36. [INFO] opencron-common .................................... SUCCESS [ 8.001 s]
  37. [INFO] opencron-agent ..................................... SUCCESS [ 2.204 s]
  38. [INFO] opencron-server .................................... SUCCESS [ 4.041 s]
  39. [INFO] ------------------------------------------------------------------------
  40. [INFO] BUILD SUCCESS
  41. [INFO] ------------------------------------------------------------------------
  42. [INFO] Total time: 15.167 s
  43. [INFO] Finished at: 2017-10-07T14:20:50+08:00
  44. [INFO] Final Memory: 49M/727M
  45. [INFO] ------------------------------------------------------------------------
  46. -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
  47. # 此时我们发现源代码的目录下面多出了build目录
  48. mj@DZ:~/桌面/Linux/opencron$ ls
  49. build checkstyle.xml LICENSE.txt opencron-common pom.xml
  50. build.sh header.txt opencron-agent opencron-server README.md
  51. # 查看目标文件
  52. mj@DZ:~/桌面/Linux/opencron/build/dist$ pwd
  53. /home/mj/桌面/Linux/opencron/build/dist
  54. mj@DZ:~/桌面/Linux/opencron/build/dist$ ls
  55. opencron-agent-1.1.0-RELEASE.tar.gz opencron-server.war
  56. # 复制Agent到需要管理的机器上
  57. mj@DZ:~/桌面/Linux/opencron/build/dist$ scp opencron-agent-1.1.0-RELEASE.tar.gz root@10.0.0.145:/opt
  58. # 进入被管理机器
  59. lyx@lyx-virtual-machine:/opt$ tar xf opencron-agent-1.1.0-RELEASE.tar.gz
  60. # 查看文件内容
  61. lyx@lyx-virtual-machine:/opt/opencron-agent$ tree -L 2 .
  62. .
  63. ├── bin ---服务管理目录
  64.    ├── kill.sh
  65.    ├── monitor.sh
  66.    ├── opencron.sh
  67.    ├── setclasspath.sh
  68.    ├── shutdown.sh
  69.    └── startup.sh
  70. ├── conf ---服务配置目录
  71.    ├── conf.properties
  72.    └── log4j.properties
  73. ├── lib ---服务依赖目录
  74.    ├── commons-cli-1.4.jar
  75.    ├── commons-codec-1.10.jar
  76.    ├── commons-exec-1.3.jar
  77.    ├── commons-io-2.4.jar
  78.    ├── commons-lang-2.4.jar
  79.    ├── commons-lang3-3.1.jar
  80.    ├── commons-logging-1.1.1.jar
  81.    ├── cron4j-2.2.5.jar
  82.    ├── fastjson-1.2.31.jar
  83.    ├── freemarker-2.3.20.jar
  84.    ├── hamcrest-core-1.3.jar
  85.    ├── HikariCP-java6-2.3.13.jar
  86.    ├── httpclient-4.5.3.jar
  87.    ├── httpcore-4.4.1.jar
  88.    ├── jackson-annotations-2.7.0.jar
  89.    ├── jackson-core-2.7.4.jar
  90.    ├── jackson-databind-2.7.4.jar
  91.    ├── jackson-module-jaxb-annotations-2.7.4.jar
  92.    ├── junit-4.11.jar
  93.    ├── libthrift-0.10.0.jar
  94.    ├── log4j-1.2.16.jar
  95.    ├── mchange-commons-java-0.2.11.jar
  96.    ├── netty-buffer-4.1.5.Final.jar
  97.    ├── netty-codec-4.1.5.Final.jar
  98.    ├── netty-codec-http-4.1.5.Final.jar
  99.    ├── netty-common-4.1.5.Final.jar
  100.    ├── netty-handler-4.1.5.Final.jar
  101.    ├── netty-resolver-4.1.5.Final.jar
  102.    ├── netty-socketio-1.7.12.jar
  103.    ├── netty-transport-4.1.5.Final.jar
  104.    ├── netty-transport-native-epoll-4.1.5.Final.jar
  105.    ├── opencron-agent-1.1.0-RELEASE.jar
  106.    ├── opencron-common-1.1.0-RELEASE.jar
  107.    ├── protostuff-api-1.0.12.jar
  108.    ├── protostuff-collectionschema-1.0.12.jar
  109.    ├── protostuff-core-1.0.12.jar
  110.    ├── protostuff-runtime-1.0.12.jar
  111.    ├── quartz-2.3.0.jar
  112.    ├── slf4j-api-1.7.21.jar
  113.    └── slf4j-log4j12-1.7.21.jar
  114. ├── logs ---服务日志目录
  115.    ├── error.out
  116.    └── opencron.out
  117. └── temp ---服务临时目录
  118. 5 directories, 50 files
  119. lyx@lyx-virtual-machine:/opt/opencron-agent$
  120. # 启动agent -P:指定端口 -p:指定连接密码 默认端口:密码为 1577:opencron
  121. lyx@lyx-virtual-machine:/opt/opencron-agent$ sh ./bin/startup.sh -P10001 -p123456
  122. # Agent启动日志如下,当可以看到端口信息和start之后基本上就起来了
  123. log4j:WARN [/opt/opencron-agent/logs/opencron.out] should be System.out or System.err.
  124. log4j:WARN Using previously set target, System.out by default.
  125. log4j:WARN [/opt/opencron-agent/logs/opencron.out] should be System.out or System.err.
  126. log4j:WARN Using previously set target, System.out by default.
  127. log4j:WARN [/opt/opencron-agent/logs/opencron.out] should be System.out or System.err.
  128. log4j:WARN Using previously set target, System.out by default.
  129. log4j:WARN [/opt/opencron-agent/logs/opencron.out] should be System.out or System.err.
  130. log4j:WARN Using previously set target, System.out by default.
  131. [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)
  132. 2017-10-07 13:08:00,197 INFO (com.corundumstudio.socketio.SocketIOServer:130) - Session store / pubsub factory used: MemoryStoreFactory (local session store only)
  133. [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: 17502
  134. 2017-10-07 13:08:00,373 INFO (com.corundumstudio.socketio.SocketIOServer:155) - SocketIO server started at port: 17502
  135. [INFO ] 2017-10-07 13:08:00,375(178) --> [main] org.opencron.agent.Bootstrap.start(Bootstrap.java:215): [opencron]agent started @ port:10001,pid:2908
  136. 2017-10-07 13:08:00,375 INFO (org.opencron.agent.Bootstrap:215) - [opencron]agent started @ port:10001,pid:2908
  137. # 我们的Agent端部署完毕之后,下面开始部署我们的server端,进入tomacat目录,如果没有tomcat的需要自己去下载,解压之后就可以使用
  138. mj@DZ:/opt/apache-tomcat-7.0.81$ pwd
  139. /opt/apache-tomcat-7.0.81
  140. # 进入web跟目录
  141. mj@DZ:/opt/apache-tomcat-7.0.81$ cd webapps/
  142. # 如果仅仅是测试使用,删除所有文件
  143. mj@DZ:/opt/apache-tomcat-7.0.81/webapps$ rm -rf ./*
  144. # 建立一个ROOT文件夹
  145. mj@DZ:/opt/apache-tomcat-7.0.81/webapps$ mkdir ROOT
  146. # 解压服务器war文件 ,然后删除war
  147. mj@DZ:/opt/apache-tomcat-7.0.81/webapps$ jar -xvf server.war
  148. # 解压之后的目录
  149. mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT$ pwd
  150. /opt/apache-tomcat-7.0.81/webapps/ROOT
  151. mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT$ ls
  152. META-INF static WEB-INF
  153. # 进入配置文件目录
  154. mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes$ pwd
  155. /opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes
  156. mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes$ ls
  157. applicationContext-datasource.xml config.properties
  158. applicationContext-mvc.xml log4j.properties
  159. applicationContext-place.xml org/
  160. applicationContext-websocket.xml
  161. # 修改数据连接串,这里重点是修改用户名、密码以及连接IP
  162. mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes$ cat config.properties
  163. jdbc.driver=com.mysql.jdbc.Driver
  164. jdbc.url=jdbc:mysql://localhost:3306/opencron?useUnicode=true&characterEncoding=utf8&useCursorFetch=true&autoReconnect=true&failOverReadOnly=false
  165. jdbc.username=root
  166. jdbc.password=root
  167. #hibernate
  168. hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
  169. hibernate.show_sql=true
  170. hibernate.format_sql=false
  171. hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
  172. hibernate.cache.provider_class=net.sf.ehcache.hibernate.EhCacheProvider
  173. hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
  174. hibernate.cache.use_second_level_cache=false
  175. hibernate.cache.use_query_cache=false
  176. jdbc.use_scrollable_resultset=false
  177. #单一登陆,同一用户只能在一处登陆,如多处登陆,后登陆的会把前面已经登陆的统统踢下线(为了安全考虑,默认是true,即不允许多段同时登陆)
  178. opencron.singlelogin=true
  179. #agent端自动注册的key
  180. opencron.autoRegKey=opencron@2016
  181. #agent监控服务端口
  182. opencorn.monitorPort=17502
  183. # 服务器安装mysql,在安装的过程中会提示你设置root的密码
  184. mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes$ sudo apt-get install mysql-server
  185. # 连接mysql
  186. mj@DZ:~$ mysql -u root -p
  187. Enter password:
  188. Welcome to the MySQL monitor. Commands end with ; or \g.
  189. Your MySQL connection id is 1085
  190. Server version: 5.7.19-0ubuntu0.16.04.1 (Ubuntu)
  191. Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  192. Oracle is a registered trademark of Oracle Corporation and/or its
  193. affiliates. Other names may be trademarks of their respective
  194. owners.
  195. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  196. mysql>
  197. # 创建opencron数据库,里面的表在连接时会自动创建
  198. mysql> create database opencron;
  199. # 查看数据库
  200. mysql> show databases;
  201. +--------------------+
  202. | Database |
  203. +--------------------+
  204. | information_schema |
  205. | abccs |
  206. | mysql |
  207. | opencron |
  208. | performance_schema |
  209. | sys |
  210. +--------------------+
  211. 6 rows in set (0.00 sec)
  212. # 退出数据库
  213. mysql> exit
  214. Bye

服务端启动

  1. mj@DZ:/opt/apache-tomcat-7.0.81/bin$ pwd
  2. /opt/apache-tomcat-7.0.81/bin
  3. mj@DZ:/opt/apache-tomcat-7.0.81/bin$ ./startup.sh
  4. Using CATALINA_BASE: /opt/apache-tomcat-7.0.81
  5. Using CATALINA_HOME: /opt/apache-tomcat-7.0.81
  6. Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.81/temp
  7. Using JRE_HOME: /opt/jdk1.8.0_111/jre
  8. Using CLASSPATH: /opt/apache-tomcat-7.0.81/bin/bootstrap.jar:/opt/apache-tomcat-7.0.81/bin/tomcat-juli.jar
  9. Tomcat started.
  10. mj@DZ:/opt/apache-tomcat-7.0.81/bin$
  11. # 如果出现端口被占用的问题,修改下面的server.xml配置中的端口
  12. mj@DZ:/opt/apache-tomcat-7.0.81/conf$ pwd
  13. /opt/apache-tomcat-7.0.81/conf
  14. mj@DZ:/opt/apache-tomcat-7.0.81/conf$ vim server.xml
  15. # 不出意外的话访问 ip:端口 就可以看到下面的页面

opencron界面

opencron界面2

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

打赏

                    支付宝                                                         微信

微信与支付宝支付

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注