一个通用的Spring Boot启停脚本

Spring Boot 如何设计一个通用的 Excel 导入导出功能? 以上是我对导出功能的思考和实现思路,因为篇幅的关系,我没有贴出完整的代码,但是相信以上内容已经足够大家作为参考,缺少的内容,比如列宽、颜色字体等设置,请查阅EasyExcel官方文档来实现,主要方式就是根据前端传过来的JSON配置信息,来动态配置EasyExcel的导出文件。,也没有分页查询参数,类似于当前页导出,在也只考虑一层包装类的情况下,没有额外的配置项,上面的已经足够了,要注意的就是代码里面得把分页参数剔除掉。批量保存的数量不能太多,要考虑系统和数据库的性能,比如每次读取500行就执行一次保存。 阅读详情

一个通用的Spring Boot启停脚本

#!/bin/bash
app_name='study-0.0.1-SNAPSHOT.jar'
log_file=${app_name%.*}.log
log_file_back="${log_file%.*}_$(date +%Y%m%d_%H%M%S).log"

pid=`ps -ef | grep $app_name | grep -v grep | awk '{print $2}' | head -n 1`
# 计数器
count=0
# 停止进程等待时间:秒
kill_wait_seconds=45
# 是否成功停止进程的标志
kill_success='null'
# 启动等待时间:秒
start_wait_seconds=45

if [ -n "${pid}" ]; then
    kill_success='true'
fi

# 结束旧进程。
# 使用kill -15结束Spring Boot进程时(优雅停机),默认情况下,若服务超过30s还未结束,则会被强制停机(效果类似于kill -9)
# 若要Spring Boot强制优雅停机,可在配置文件配置server.shutdown=GRACEFUL,还可以配置spring.lifecycle.timeout-per-shutdown-phase=30s指定超时时长
while [ -n "${pid}" ]
do
    if [ $count -eq 0 ]; then
        echo "start kill ***${app_name}*** by pid ${pid}"
        kill -15 $pid
        echo -n 'killing'
    fi
    if [ $count -ge $kill_wait_seconds ]; then
        echo ''
        echo "Kill fail. Please check detail or use \"kill -9 ${pid}\""
        kill_success='false'
        break
    fi
    sleep 1
    echo -n '.'
    pid=`ps -ef | grep $app_name | grep -v grep | awk '{print $2}' | head -n 1`
    count=$((count + 1))
done

if [ $kill_success == 'true' ]; then
    echo ''
    echo "***${app_name}*** kill successed!"
fi

if [ $kill_success != 'false' ]; then
    if [ -f "$log_file" ]; then
        echo "Backing up existing log: ${log_file} -> ${log_file_back}"
        mv "$log_file" "$log_file_back"
    fi

    # 核心启动命令,在此处添加启动参数等
    nohup java -jar $app_name > ${log_file} 2>&1 &

    # 启动命令执行成功,开始监控日志文件
    echo -n "starting"
    count=0
    while [ $count -lt $start_wait_seconds ]
    do
        sleep 1
        echo -n '.'
        if grep -q "Started .* in .* seconds" "${log_file}"; then
            break
        fi
        count=$((count + 1))
    done

    echo ''
    if grep -q "Started .* in .* seconds" "${log_file}"; then
        echo "***${app_name}*** start successed!"
    else
        echo "***${app_name}*** startup time out. No success flag found in ${log_file}."
    fi
fi

Spring Boot项目通用功能之《通用Mapper》 前言 接下来这几篇文章中我们主要说说,在我们的项目中会使用哪些通用的功能,例如:通用Mapper(mybatis框架的)、通用service和分页功能等等,这些通用功能的使用会大大降低我们的开发时间,也会让我们的代码变得更加有规范更加合理,今天这篇文章我们说说怎么使用通用mapper。 通用mapper简介 通用mapper是一个国人编写的工具jar,它可以极其方便的做单表增删改查(使用 阅读详情

相关推荐

Spring Boot项目通用功能之《通用分页》

前言 上一篇文章中我们说了下怎么去使用《通用Mapper》来实现对单表的增删改查功能,本篇我就带你学习下,如何使用PageHelper插件来实现对单表的分页功能,至此你就不需要再自己去写一大堆的mapper.xml代码去实现单表基础的功能了(其实我们绝大部分的业务都是基于单表操作的)。 实现目标 先来看一下我们约定的分页参数和响应结果的样子。 分页请求参数: localhost:

一切都是最好的安排 3万+

springboot shell启动脚本

#!/bin/bash APP_NAME=ikoa-191217.jar #使用说明,用来提示输入参数 usage() { echo "Usage: sh 执行脚本.sh [start|stop|restart|status]" exit 1 } #检查程序是否在运行 is_exist(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #如果不存在返回1,存在返回0 if [ -z "${pi

Forevermark的博客 1663

SpringBoot一键启动工具

SpringBoot一键启动工具,简化启动的命令输入,解决发布项目时候端口占用问题。

springboot项目在Linux和Windows系统中启动停止脚本

springboot项目在Linux、Windows系统中启动停止脚本

vertyur的博客 694

java jar包服务启停,shell脚本范例

java jar包服务启停,shell脚本范例。 sh demo-web.sh start sh demo-web.sh stop sh demo-web.sh restart

SpringBoot启停脚本(亲测可用)

startup.sh #!/bin/sh APP_NAME=platform-admin JAVA_OPT=-Xmx256m #has started tpid=`ps -ef|grep ${APP_NAME}|grep -v grep|grep -v kill|awk '{print $2}'` if [[ ${tpid} ]]; then echo error: ${APP_NAME} has started exit 1 fi rm -f tpid nohup /opt/jdk1.8.0_25/bin/java ${JAVA_OPT} -jar ${APP_

JVM参数介绍

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33786077的博客 291

正点原子RK3588 Android 12镜像构建实战:从环境配置到烧录验证全指南

本文提供了一份基于正点原子RK3588开发板的Android 12镜像构建全流程实战指南。内容涵盖从Ubuntu环境配置、SDK获取、编译内核与系统,到最终镜像打包与烧录验证的完整步骤,并分享了内核驱动定制与系统优化技巧,旨在帮助开发者高效完成瑞芯微RK3588平台的系统定制工作。

grass的博客 811

SpringBoot项目快速启动停止脚本

SpringBoot项目快速启动停止脚本 1.在jar包同级目录下,创建 app.sh #!/bin/bash appName=`ls|grep .jar$` if [ -z $appName ] then echo "Please check that this script and your jar-package is in the same directory!" exit 1 fi killForceFlag=$2 function start() { co

qq_34874784的博客 1212

高等数学/概率论/数理统计/线性代数/离散数学面试-核心概念-问题理解

特征值与特征向量是线性代数中的概念,它们与线性变换有关。在线性变换中,如果存在非零向量 v ,使得当该向量通过变换后,其方向不变,只是长度发生了变化,那么这个向量 v 就是特征向量。而这个长度变化的比例因子,即变换前后向量长度的比值,称为特征值。数学公式表示:通俗易懂的解释:想象一下,你有一个可以伸缩的橡皮筋,这个橡皮筋可以代表一个向量。现在,你有一个特殊的机器,它可以改变橡皮筋的形状,但不会改变它延伸的方向。当你把橡皮筋放入机器中,机器会拉伸或压缩橡皮筋,但橡皮筋的方向保持不变。

m0_64198455的博客 2292

YDOOK: ANSYS Maxwell 19 教程7:Maxwell 2D 材料管理 添加新增 永磁材料

使用ANSYS Maxwell 19 添加新增 永磁材料 1. 点击 Add material 按钮后,在左下方的下拉框中下拉选择永磁材料,弹出用材料设置框: 2. 按照下面数据输入 3. 输入 Hc 与 Br/Ap 两项后,其他项的数据将自动计算给出 4. 点击OK后再,为了使得材料属性的完整性,在 Bulk Conductivity 属性行中输入 材料电导率的数值。 ...

YDOOK 1万+

阿里云效 Flow 流水线部署 Spring Boot 项目到 ECS:从 0 到 1 的保姆级教程

本文将从零开始,手把手教你如何通过阿里云效 Flow 流水线,将 Spring Boot 项目自动化构建、打包并部署到阿里云 ECS 服务器🐱。内容覆盖流水线创建、制品仓库配置、主机组绑定、部署脚本编写、高频问题排查五大核心环节🛠️,解决路径不匹配、脚本语法错误、服务启动失败等新手必踩的坑⚠️。全程附可直接复制的代码模板📋,让你一次跑通 CI/CD 流程🚀,实现代码提交即自动部署。

sent921的博客 463

保姆级教程:用PyBullet和Stable-Baselines3搞定你的第一个机器人强化学习项目

本文提供了一份详细的PyBullet和Stable-Baselines3教程,帮助开发者快速上手机器人强化学习项目。通过环境配置、自定义Gym环境构建、PPO算法参数优化及模型部署的全流程解析,读者将掌握从零开始训练四足机器人 locomotion 任务的完整技术方案。

weixin_26861329的博客 420

Spring Boot 的优雅启停:确保停机不影响交易

多中心并行发版:各中心并行升级,确保始终有可用实例。服务下线前的流量切换:使用服务注册中心(如 Eureka)将待下线实例置为“DOWN”。进程关闭信号选择:使用 kill -15(SIGTERM)触发优雅关闭,而非kill -9(SIGKILL)。线程池的优雅停止:配置线程池等待任务完成,避免强制中断。Spring Boot 2.3 内置优雅关机:启用,设置超时时间。启动时的优雅准备:检测依赖、初始化资源,确保服务就绪后再接受流量。优雅启停是系统稳定运行的关键。

sc35262的博客 1170

基于matlab的轴承损伤分析动力学建模仿真

高质量的轴承在正确的使用下,可以使用很长一段时间,如果过早的出现损伤,很可能是因为选型错误,使用不当或润滑不良造成的。因此,在安装轴承时,我们需要记录机器种类,安装部位,使用条件及周围配合。通过研究总结轴承损伤的类型,发生问题时的使用环境,以避免类似情况再次发生。轴承损伤方式按下述图片分类,我们可以图片中显示的主要特征来判断轴承损伤形式。01、压痕碰伤卡入固体异物或冲击造成的表面凹坑及安装是的擦伤◆固体异物侵入◆在倾斜状态下安装◆安装不良造成的撞击,脱落◆卡入剥离片◆改善安装、使用方法。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 2667

华为OD机试真题 新系统【进制转换后自定义排序】

华为OD机试 新系统真题【进制转换后自定义排序】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【进制转换后自定义排序】多语言题解。

qq_45776114的博客 595

Spring Boot应用启停脚本设计与实现指南

在Java应用部署中,规范的启停脚本是保障服务可靠性的关键组件。通过标准化操作流程和异常处理机制,启停脚本能有效避免手工操作导致的服务故障。从技术原理看,这类脚本通常基于Shell或Batch命令实现进程管理、日志重定向和状态维护,其核心价值在于提升运维效率和系统稳定性。以Spring Boot应用为例,合理的脚本设计应包含JVM参数配置、启动校验、日志轮转等生产级功能,同时适配Linux/Windows多环境部署。在实际应用场景中,结合nohup、PID文件管理等技术,可以构建出健壮的服务管理方案,满足企

weixin_29209805的博客 276

【WRF教程第3.5期】预处理系统 WPS 详解:以4.5版本为例

预处理系统 WPS 详解:以4.5版本为例

WW、forever的博客 1422

spring boot实现动态增删启停定时任务

在spring boot项目中,可以通过@EnableScheduling注解和@Scheduled注解实现定时任务,也可以通过SchedulingConfigurer接口来实现定时任务。但是这两种方式不能动态添加、删除、启动、停止任务。要实现动态增删启停定时任务功能,比较广泛的做法是集成Quartz框架。但是本人的开发原则是:在满足项目需求的情况下,尽量少的依赖其它框架,避免项目过于臃肿和复杂。...

weixin_33747129的博客 1335

S7-200SMART通过表格指令实现模拟量信号滑动平均值滤波的具体方法

S7-200SMART通过表格指令实现模拟量信号滑动平均值滤波的具体方法

Robot_PLC_HMI_Automation 6725

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java JDK 常用工具命令 javac、jar、java、javaw,替换 .jar 包 class 文件,脚本启停 spring boot Jar 包服务

目录 javac.exe 编译 jar.exe 打包 java.exe 执行 javaw.exe 命令 javac.exe 编译 1、编写的 Java 源文件执行之前都需要使用 javac.exe 命令进行编译,即 *.java 编译成 *.class。 2、javac.exe 在 %JAVA_HOME%/bin 目录下,配置好环境变量后,命令行中可以直接运行。命令行中输入 java...

蚩尤后裔-汪茂雄 4953

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

超强功能,spring boot实现动态增删启停定时任务!

如常见的RabbitMQ和Kafka,由于这两个消息中间件的架构上的不同,像RabbitMQ有exchange,kafka有Topic,partitions分区,这些中间件的差异性导致我们实际项目开发给我们造成了一定的困扰,我们如果用了两个消息队列的其中一种,后面的业务需求,我想往另外一种消息队列进行迁移,这时候无疑就是一个灾难性的,一大堆东西都要重新推倒重新做,因为它跟我们的系统耦合了,这时候 springcloud Stream 给我们提供了一种解耦合的方式。最近小编淘到一份宝贝!

x1ao_fe1的博客 856

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

springboot执行shell脚本_【shell】二、springboot的启停脚本编写与解析

零、前言在做java开发、运维、测试的工作中,跟springboot打交道的地方太多了。怎么轻松管理一个springboot的项目部署呢?借着这个来自作者junbaor的优秀实例,我们来看看一个shell脚本是如何炼成的。一、v0.1版本1.1 脚本实例此版本来自github:https://github.com/junbaor/shell_script/blob/master/spri...

weixin_39760206的博客 800

一个Spring-Boot通用启动脚本

一个Spring-Boot的通用启动脚本,支持启动/停止/重启/查看状态/Dump进程相关数据(JVM/OS) 使用方式: 基本使用 $ 脚本名 [start|stop|restart|status|dump] DEBUG模式启动 $ 脚本名 [start|restart] debug #!/bin/bash # Spring-Boot 常规启动脚本,基于HotSpot ...

芒果不是程序猿v: 的博客 614

linux命令行was集群启停,通用服务启停shell脚本

####################################通用启停脚本#david###################################APP_NAME=myApppsid=0checkpid() {redisPid=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}'`if [[ -n "$myAppP...

weixin_33480732的博客 705

脚本实现oracle服务启停,通用服务启停shell脚本

####################################通用启停脚本#david###################################APP_NAME=myApppsid=0checkpid() {redisPid=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}'`if [[ -n "$myAppP...

weixin_33209042的博客 209
上一篇: Spring中几个自动注入的注解的优先级
下一篇: Java诊断工具Arthas的简单使用
java_t_t
博客等级 码龄9年 171粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值