CoderYuanX 2024-05-11 18:18 采纳率: 14.3%
浏览 40

SpringBoot引入了activity组件后,项目启动时,后台疯狂查询数据库

我的springboot启动时,后台一直在打印mybati的sql语句,我看都是activity流程引擎里的库操作,有查询、删除操作,项目接口能访问,但是特别占用资源 不知道啥原因

img

img

img

  • 写回答

3条回答 默认 最新

  • 笑面虎 2024-05-11 18:19
    关注

    以下内容由CHATGPT及笑面虎共同生成、有用望采纳:


    您想要解决的问题: 您遇到的问题是在SpringBoot项目中引入了Activiti组件后,项目启动时后台不断执行数据库查询和删除操作,导致资源占用严重。

    图片内容

    1. 第一张图片显示了一个JDBC连接的打开和关闭过程,以及一个SQL查询的准备和执行,包括参数绑定和LIMIT/OFFSET的使用。
    2. 第二张图片包含了Activiti的配置信息,涉及到异步执行器的激活、流程定义的检查和部署、数据库架构更新策略以及历史数据保存级别的设置。
    3. 第三张图片显示了一个SQL查询的执行,包括参数绑定和查询结果。

    问题出现原因: 问题可能出现的原因有:

    • Activiti在启动时执行了数据库的初始化或更新操作,这可能包括创建或更新表、索引等。
    • 配置文件中可能设置了database-schema-update: true,这会导致Activiti在启动时检查并更新数据库模式。
    • history-level: full配置可能导致Activiti保存大量的历史数据,增加了数据库操作的频率。

    问题解决方案

    1. 优化Activiti配置:考虑将database-schema-update设置为false,以防止不必要的数据库更新操作。
    2. 调整历史数据级别:如果不需要完整的历史数据,可以将history-level设置为audit或更低级别,以减少数据库存储的负担。
    3. 审查Activiti流程定义:确保流程定义中没有不必要的数据库操作,或者是否有可能优化流程以减少数据库交互。
    4. 资源监控和调优:监控数据库连接池和线程池的使用情况,根据需要进行调优。

    提供代码: 由于您提供的信息主要是配置和日志,而不是具体的代码问题,因此这里不提供具体的代码修改。但是,您可以考虑调整Activiti的配置文件,例如:

    activiti:
      async-executor-activate: false
      check-process-definitions: false
      database-schema-update: false
      db-history-used: true
      history-level: audit
      process-definition-location-prefix: classpath*:/processes/**/*
    

    代码运行方式: 您需要将上述配置添加或修改到您的SpringBoot项目的配置文件中(通常是application.ymlapplication.properties),然后重新启动应用。

    代码预期运行结果: 预期结果是Activiti在启动时不再执行不必要的数据库操作,从而减少资源占用。

    推荐相关链接

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月11日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表