# 从 R2.6.6.3.48 升级到 R2.6.6.3.49
# 更新时间
2025 年 8 月 19 日
# 更新内容
- 增加锁屏功能,锁屏后用户无法进行任何操作,直到解锁。
- 修复数据权限中本部门的获取逻辑。
- 浏览器关闭事件监听时间实现可配置化。
- redis过期监听事件使用redission分布式锁,防止分布式环境下重复执行的问题。
- 实现iris版本his的CasTicket认证登录。
- 使用dynamictp插件支持从主线程自动往子线程传递mdc信息及threadlocal信息。
- 通过登录配置页面的系统特色功能开关,来控制登录界面的效果。
# 前端升级步骤
- 请到 hos-app-web (opens new window) 代码仓库中
release-2.6.6.3.48
分支中将源码下载到本地。 - 如果自己业务工程中
src/sys
,src/App.vue
的代码没有进行过手动修改的话,将该代码手动删除,然后将hos-app-web
中src/sys
,src/App.vue
的代码复制到本地工程即可; - 如果自己业务工程中
src/sys
,src/App.vue
的代码进行过手动修改的话,请自行与src/sys
,src/App.vue
的代码进行比对,手动进行同步并解决冲突代码;
# 后端升级步骤
- 在根 pom 文件中修改
hos-app-dependencies
的版本号为R2.6.6.3.49
,修改hos-starter-dependencies
的版本号为R1.5.7.19
, 修改hos-security-dependencies
的版本号为R1.0.8.30
。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.mediway.hos</groupId>
<artifactId>hos-app-dependencies</artifactId>
<version>R2.6.6.3.49</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.mediway.hos</groupId>
<artifactId>hos-starter-dependencies</artifactId>
<version>R1.5.7.19</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.mediway.hos</groupId>
<artifactId>hos-security-dependencies</artifactId>
<version>R1.0.8.30</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2.在yml中增加以下配置使其支持从主线程自动往子线程传递mdc信息及threadlocal信息
dynamictp:
enabled: true # 是否启用 dynamictp,默认true
enabledCollect: true # 是否开启监控指标采集,默认true
collectorTypes: internal_logging # 监控数据采集器类型(logging | micrometer | internal_logging | JMX),默认micrometer
monitorInterval: 10 # 监控时间间隔(报警检测、指标采集),默认5s
# 告警渠道
platforms: # 通知报警平台配置
- platform: email
platformId: 1
receivers: liusen_2012@126.com # 收件人邮箱,多个用逗号隔开
- platform: wechat
platformId: 2 # 平台id,自定义
urlKey: b38b5661-b8ce-40ee-9474-55cfe6d76087 # webhook 中的 key
receivers: 15110295660,13261210189 # 接受人企微账号
# 全局配置
globalExecutorProps: # 线程池配置 > 全局配置 > 字段默认值
rejectedHandlerType: CallerRunsPolicy
queueType: VariableLinkedBlockingQueue
waitForTasksToCompleteOnShutdown: true
awaitTerminationSeconds: 3
taskWrapperNames: ["userinfo", "ttl", "mdc"]
queueTimeout: 300
runTimeout: 300
notifyItems: # 报警项,不配置自动会按默认值配置(变更通知、容量报警、活性报警、拒绝报警、任务超时报警)
- type: change # 线程池核心参数变更通知
silencePeriod: 120 # 通知静默时间(单位:s),默认值1,0表示不静默
- type: capacity # 队列容量使用率,报警项类型,查看源码 NotifyTypeEnum枚举类
threshold: 80 # 报警阈值,意思是队列使用率达到70%告警;默认值=70
count: 2 # 在一个统计周期内,如果触发阈值的数量达到 count,则触发报警;默认值=1
period: 30 # 报警统计周期(单位:s),默认值=120
silencePeriod: 0 # 报警静默时间(单位:s),0表示不静默,默认值=120
- type: liveness # 线程池活性
threshold: 80 # 报警阈值,意思是活性达到70%告警;默认值=70
count: 3 # 在一个统计周期内,如果触发阈值的数量达到 count,则触发报警;默认值=1
period: 30 # 报警统计周期(单位:s),默认值=120
silencePeriod: 0 # 报警静默时间(单位:s),0表示不静默;默认值=120
- type: reject # 触发任务拒绝告警
count: 1 # 在一个统计周期内,如果触发拒绝策略次数达到 count,则触发报警;默认值=1
period: 30 # 报警统计周期(单位:s),默认值=120
silencePeriod: 0 # 报警静默时间(单位:s),0表示不静默;默认值=120
- type: run_timeout # 任务执行超时告警
count: 20 # 在一个统计周期内,如果执行超时次数达到 count,则触发报警;默认值=10
period: 30 # 报警统计周期(单位:s),默认值=120
silencePeriod: 30 # 报警静默时间(单位:s),0表示不静默;默认值=120
- type: queue_timeout # 任务排队超时告警
count: 5 # 在一个统计周期内,如果排队超时次数达到 count,则触发报警;默认值=10
period: 30 # 报警统计周期(单位:s),默认值=120
silencePeriod: 0 # 报警静默时间(单位:s),0表示不静默;默认值=120
# 线程池配置
executors: # 动态线程池配置,都有默认值,采用默认值的可以不配置该项,减少配置量
- threadPoolName: dtpExecutor1 # 线程池名称,必填
threadPoolAliasName: 测试线程池 # 线程池别名,可选
executorType: common # 线程池类型 common、eager、ordered、scheduled、priority,默认 common
corePoolSize: 6 # 核心线程数,默认1
maximumPoolSize: 8 # 最大线程数,默认cpu核数
queueCapacity: 2000 # 队列容量,默认1024
queueType: VariableLinkedBlockingQueue # 任务队列,查看源码QueueTypeEnum枚举类,默认VariableLinkedBlockingQueue
rejectedHandlerType: AbortPolicy # 拒绝策略,查看RejectedTypeEnum枚举类,默认AbortPolicy
keepAliveTime: 60 # 空闲线程等待超时时间,默认60
threadNamePrefix: pro # 线程名前缀,默认dtp
allowCoreThreadTimeOut: false # 是否允许核心线程池超时,默认false
waitForTasksToCompleteOnShutdown: true # 参考spring线程池设计,优雅关闭线程池,默认true
awaitTerminationSeconds: 5 # 优雅关闭线程池时,阻塞等待线程池中任务执行时间,默认3,单位(s)
preStartAllCoreThreads: false # 是否预热所有核心线程,默认false
runTimeout: 200 # 任务执行超时阈值,单位(ms),默认0(不统计)
queueTimeout: 100 # 任务在队列等待超时阈值,单位(ms),默认0(不统计)
tryInterrupt: false # 执行超时后是否中断线程,默认false
taskWrapperNames: ["userinfo", "ttl", "mdc"] # 任务包装器名称,继承TaskWrapper接口
notifyEnabled: true # 是否开启报警,默认true
- threadPoolName: test # 线程池名称,必填
threadPoolAliasName: 测试线程池 # 线程池别名,可选
executorType: eager # 线程池类型 common、eager、ordered、scheduled、priority,默认 common
corePoolSize: 2 # 核心线程数,默认1
maximumPoolSize: 4 # 最大线程数,默认cpu核数
queueCapacity: 100 # 队列容量,默认1024
queueType: VariableLinkedBlockingQueue # 任务队列,查看源码QueueTypeEnum枚举类,默认VariableLinkedBlockingQueue
rejectedHandlerType: AbortPolicy # 拒绝策略,查看RejectedTypeEnum枚举类,默认AbortPolicy
keepAliveTime: 60 # 空闲线程等待超时时间,默认60
threadNamePrefix: pro # 线程名前缀,默认dtp
allowCoreThreadTimeOut: false # 是否允许核心线程池超时,默认false
waitForTasksToCompleteOnShutdown: true # 参考spring线程池设计,优雅关闭线程池,默认true
awaitTerminationSeconds: 5 # 优雅关闭线程池时,阻塞等待线程池中任务执行时间,默认3,单位(s)
preStartAllCoreThreads: false # 是否预热所有核心线程,默认false
runTimeout: 20000 # 任务执行超时阈值,单位(ms),默认0(不统计)
queueTimeout: 10000 # 任务在队列等待超时阈值,单位(ms),默认0(不统计)
tryInterrupt: false # 执行超时后是否中断线程,默认false
taskWrapperNames: ["userinfo", "ttl", "mdc"] # 任务包装器名称,继承TaskWrapper接口
notifyEnabled: true # 是否开启报警,默认true
platformIds: [2]
# 数据库脚本
请根据数据库实际使用情况,仔细核对数据库类型,下载当前使用的数据库对应的升级脚本。
(以下为
高斯数据库
的升级示例)- 前往 Gitlab 下载页面(https://106.63.4.7:8000/hos/demo/hos-app-demo/-/tree/master/project-strcutre/project-strcutre-demo/oa-doc/data/opengauss/2.6.6.3.49) , 用户名及密码为自己的 Git 账号密码,没有权限的话找王鑫申请,没有账号的话找自己的主管向公司申请。
- 下载
hos-app-base-opengauss-2.6.6.3.46~2.6.6.3.49.sql
文件 - 执行更新 SQL
hos-app-base-opengauss-2.6.6.3.46~2.6.6.3.49.sql