内容简介:XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。官方文档很完善,不多赘述。本文主要是搭建我比较熟悉
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
官方文档很完善,不多赘述。本文主要是搭建 XXL-JOB
和简单使用的记录。
搭建xxl-job-admin管理端
运行环境
- Ubuntu 16.04 64位
- Mysql 5.7
安装Mysql
$ sudo apt-get update $ sudo apt-get install mysql-server ## 设置mysql,主要是安全方面的,密码策略等 $ mysql_secure_installation ## 配置远程访问 $ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf bind-address = 0.0.0.0 $ sudo service mysql restart $ sudo service mysql status ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-06-05 13:23:41 HKT; 45s ago ... 复制代码
创建数据库
$ mysql -u root -p mysql> CREATE database if NOT EXISTS `xxl-job` default character set utf8 collate utf8_general_ci; 复制代码
创建用户
$ mysql -u root -p mysql> CREATE USER 'xxl-job'@'%' IDENTIFIED BY 'xxlJob2019@'; mysql> GRANT ALL PRIVILEGES ON `xxl-job`.* TO 'xxl-job'@'%'; 复制代码
本地测试xxl-job-admin
拉取最新源码
$ git clone git@github.com:xuxueli/xxl-job.git $ cd xxl-job 复制代码
导入项目
我比较熟悉 Idea
开发工具,所以这里使用 Idea
的 Gradle
项目进行演示。
打开 xxl-job
,项目结构如下
测试项目
打开 xxl-job-admin/resources/application.properties
,修改 mysql 连接信息
### xxl-job, datasource spring.datasource.url=jdbc:mysql://192.168.32.129:3306/xxl-job?Unicode=true&characterEncoding=UTF-8 spring.datasource.username=xxl-job spring.datasource.password=xxlJob2019@ 复制代码
使用 /xxl-job/doc/db/tables_xxl_job.sql
初始化数据库,初始化完应该如下图
准备就绪后,就可以启动项目了,然后打开地址http://localhost:8080/xxl-job-admin将会看到首页
部署
打包调度中心
$ cd /xxl-job $ mvn install ... [INFO] xxl-job ............................................ SUCCESS [ 0.513 s] [INFO] xxl-job-core ....................................... SUCCESS [ 4.258 s] [INFO] xxl-job-admin ...................................... SUCCESS [ 5.525 s] [INFO] xxl-job-executor-samples ........................... SUCCESS [ 0.016 s] [INFO] xxl-job-executor-sample-spring ..................... SUCCESS [ 2.188 s] [INFO] xxl-job-executor-sample-springboot ................. SUCCESS [ 0.892 s] [INFO] xxl-job-executor-sample-jfinal ..................... SUCCESS [ 1.753 s] [INFO] xxl-job-executor-sample-nutz ....................... SUCCESS [ 1.316 s] [INFO] xxl-job-executor-sample-frameless .................. SUCCESS [ 0.358 s] [INFO] xxl-job-executor-sample-jboot ...................... SUCCESS [ 1.279 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 18.549 s [INFO] Finished at: 2019-06-05T14:40:25+08:00 [INFO] ------------------------------------------------------------------------ 复制代码
看到以上信息,说明我们打包成功了,在 /xxl-job/xxl-job-admin
目录下会存在jar文件: xxl-job-admin-2.1.0-SNAPSHOT.jar
部署到服务器
$ sudo apt install openjdk-8-jdk $ java -version openjdk version "1.8.0_212" OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.16.04.1-b03) OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode) $ sudo mkdir -p /data/xxl-job $ sudo cd /data/xxl-job ## 上传我们打包好的jar至此目录,并添加软连接 $ sudo ln -s xxl-job-admin-2.1.0-SNAPSHOT.jar current.jar ## 注册为system服务,可以达到异常重启,开机自启等目的 $ sudo vim /etc/systemd/system/xxl-job.service Description=xxl-job Service Daemon After=mysql.service [Service] Type=simple Environment="JAVA_OPTS= -Xmx1024m -Xms1024m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:NewRatio=3" ExecStart=java -jar /data/xxl-job/current.jar Restart=always WorkingDirectory=/data/xxl-job/ [Install] WantedBy=multi-user.target $ sudo systemctl enable xxl-job.service $ sudo service xxl-job start $ sudo service xxl-job status ● xxl-job.service Loaded: loaded (/etc/systemd/system/xxl-job.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-06-05 15:30:08 HKT; 2min 34s ago ... 复制代码
我们访问一下http://192.168.32.129:8080/xxl-job-admin:
测试任务调度
以上,我们的任务调度管理端已经搭建完成,接下来,让我们测试下任务调度。
直接使用自带的 SpringBoot
测试项目 xxl-job-executor-sample-springboot
进行测试,修改配置文件
xxl-job-executor-sample-springboot=http://192.168.32.129:8080/xxl-job-admin 复制代码
自定义任务
编写一个简单的任务,打印100次当前序列
package com.xxl.job.executor.service.jobhandler; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.annotation.JobHandler; import com.xxl.job.core.log.XxlJobLogger; import org.springframework.stereotype.Component; import java.util.concurrent.TimeUnit; /** * TODO * * @author gaochen * @date 2019/6/5 */ @JobHandler(value="gcddJobHandler") @Component public class GcddJobHandler extends IJobHandler { @Override public ReturnT<String> execute(String param) throws Exception { for (int i = 0; i < 100; i++) { XxlJobLogger.log("XXL-JOB, print " + i); TimeUnit.SECONDS.sleep(1); } return SUCCESS; } } 复制代码
启动执行器
然后启动执行器,启动完成后,我们会发现管理页面的执行器列表会多出我们刚才启动的执行器
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
MATLAB数值计算
莫勒 / 喻文健 / 机械工业出版社 / 2006-6 / 35.00元
《MATLAB数值计算》是关于数值方法、MATLAB软件和工程计算的教材,着重介绍数学软件的熟练使用及其内在的高效率算法。主要内容包括:MATLAB介绍、线性方程组、插值、方程求根、最小二乘法、数值积分、常微分方程、傅里叶分析、随机数、特征值与奇异值、偏微分方程。《MATLAB数值计算》配备大量MATLAB例子源代码及习题,其中涉及密码学、Google网页分级、大气科学和图像处理等前沿问题,可以帮......一起来看看 《MATLAB数值计算》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
正则表达式在线测试
正则表达式在线测试