Appearance
部署批处理作业后台
IMPORTANT
本文档介绍批处理作业后台的部署;应用程序中一些批处理相关的异步或定时任务,都可以在批处理作业后台进行管理和查看,比如统计作业等。
部署后端
1、生成部署目录
如果你已经看过服务端开发环境搭建, 那么开发环境搭建好了之后, 你可以执行如下命令,生成后端程序的发布目录:
./gradlew u8-x-quartz:release
等待执行完成之后, 会在U8Servers/release/u8-x-quartz目录下生成可部署程序。 部署目录结构如下:
quartz.dev
-----bin: 该目录包含了程序运行的可执行jar包
----application.properties: 程序配置文件,在该文件中指定端口等信息
----application-dev.properties: 开发环境配置文件
----logback-spring.xml logback日志配置文件
service.sh: Linux下快捷启动辅助脚本
startdev.sh: Linux下启动脚本
stopdev.sh: Linux下结束程序脚本
程序部署,我们以CentOS 7.2系统(推荐使用CentOS 7.2/7.6)的云服务器为例,我们将上述目录下所有文件直接上传到云服务器上某个目录下,比如/home/u8.quartz目录下即可。
2、配置参数
如果您还没有安装导入mysql数据库,请参考这篇文档完成Mysql的安装和配置: MySql配置
如果您还没有安装Redis,请参考这篇文档完成Redis的安装和配置:Redis配置
拷贝到服务器上之后, quartz.dev目录下,打开application.properties和application_dev.properties文件,检查并修改如下配置项:
bash
server.port: 程序启动后占用的端口
spring.servlet.multipart.location: 程序临时文件目录位置,建议手动指定,防止使用系统临时目录,一段实际无使用,被系统回收,导致程序需要重启
spring.datasource.source.url: 源数据库链接,修改其中的数据库IP地址,端口和数据库名称即可。和u8-x-server程序的配置要一致
spring.datasource.username: 数据库用户名, 和u8-x-server程序的配置要一致
spring.datasource.password: 数据库用户密码, 和u8-x-server程序的配置要一致
spring.datasource.quartz.url: 作业数据库链接,修改其中的数据库IP地址,端口和数据库名称即可。
spring.datasource.quartz.username: 作业数据库用户名
spring.datasource.quartz.password: 作业数据库密码
spring.redis.host:redis服务所在的ip地址
spring.redis.password: redis服务的密码,如果redis中没有配置,可以为空
spring.redis.port: redis服务的端口,默认是6379
spring.redis.database: 当前程序使用的redis数据库索引, 取值:0到15。 如果和u8-x-server程序用的同一个redis,这里数据库索引使用一个和他们不同的
logback-spring.xml文件中可以配置日志输出的等级, 一般我们可以设置为warn或者error级别,可以减少日志文件的大小。
3、启动关闭
程序采用java开发,所以服务器上需要有jdk环境(jdk版本:1.8),如果你的服务器上还没有安装, 请先安装jdk:
bash
yum install java-1.8.0-openjdk* -y
部署目录下有几个执行脚本, 为了这些脚本可以在linux下执行, 请先分别分配一下可执行权限; 命令行进入/home/u8.quartz目录下,然后执行如下命令
bash
chmod +x startdev.sh
chmod +x stopdev.sh
chmod +x service.sh
启动后端程序,执行如下命令:
bash
./startdev.sh
如果执行失败, 提示bash not found,可能是因为脚本在Windows下操作过,导致脚本换行符变成Windows下的格式了,可以先用命令更改一下换行符格式;依次执行如下命令:
bash
sed -i "s/\r//" startdev.sh
sed -i "s/\r//" stopdev.sh
sed -i "s/\r//" service.sh
启动之后, 可以看下quartz.dev目录下, 是否出现了nohup.out和run.pid等文件:
bash
run.pid: 当前程序的进程ID文件
nohup.out: 当前启动程序的控制台日志输出文件
nohup.out.bak: 上一次启动后程序的日志备份文件
log目录: sdk.log是当前程序输出的日志文件,其他是每天一个日志文件
结束后端程序, 执行如下命令:
bash
./stopdev.sh
后续重启的话, 我们按如下顺序重启:
1、执行 ./stopdev.sh
2、等待10来秒,等程序关闭完成
3、执行 ./startdev.sh
4、注意事项
1、 如果后端程序直接对外访问,请将后端程序的端口添加到服务器上的防火墙端口过滤规则中
2、 如果使用的是云服务器等,云服务器一般有专门的端口访问设置,也请在端口访问规则中,将后端程序的端口添加到对外访问规则中
部署前端
1、配置参数
打开前端项目工程u8-quartz-client目录下.env文件,将里面如下配置更改一下:
bash
VUE_APP_API: 配置为上面部署好的后端程序的外网访问地址,请注意: URL地址最后请携带上/, 比如: http://quartz.u8sdk.com:12203/
2、生成部署目录
如果你已经看过前端程序开发环境, 那么前端开发环境搭建好了之后, 你可以在前端程序工程u8-quartz-client目录下,执行如下命令,生成前端程序的发布目录:
bash
npm run build
编译之后, 生成的部署程序在当前工程/dist目录下; 然后我们可以将dist目录下的所有内容,拷贝到任何web服务器中对应的目录下,比如Ngnix,Apache,IIS等
3、部署
我们以Nginx为例, 安装好Nginx之后, 我们在服务器上创建/www/u8/quartz_client目录,将上面dist目录下所有文件拷贝到该目录下即可
然后,在etc/nginx/conf.d目录下新建一个u8_quartz.conf, 配置我们前端程序的访问规则:
bash
server{
listen 8097; #绑定的端口
server_name unisdk.u8sdk.com; #绑定域名
index index.html; #默认文件
root /www/u8/quartz_client; #指向前端文件的存放的目录
location / {
root /www/u8/quartz_client; #指向前端文件的存放的目录
index index.html; #首页
try_files $uri $uri/ /index.html; #固定这个
}
}
这样,我们访问 http://unisdk.u8sdk.com:8097/ 就可以访问到我们的批处理作业后台了。
我们知道,Vue开发的管理后台, 一般首页首次打开访问速度会比较慢,因为他是单页应用,首次打开会需要加载很多依赖和配置;虽然我们的前端代码结构中已经做了很多这方面的优化,但是为了进一步加快前端页面的加载速度,我们可以开启Ngnix的gzip压缩; 在Ngnix配置文件中(/etc/nginx/nginx.conf),增加如下配置(如果已经设置过了,就不需要重复设置了):
bash
gzip on;
gzip_comp_level 9;
gzip_min_length 100;
gzip_types application/javascript text/css text/javascript;
配置完成后,我们执行命令: ngnix -s reload
重载一下配置,然后清除浏览器缓存,再看看首次加载的访问速度吧,这次应该可以秒开了。