kkFileView文件转换soffice.bin进程内存不释放问题

问题

maxTasksPerProcess默认200,项目配置的是1000,导致在转换大文件的时候内存一直不释放,最终程序崩溃。只有重启服务或杀掉soffice.bin进程才进行释放。并发情况下存在重大问题。
在这里插入图片描述

关键配置属性maxTasksPerProcess

这个属性描述的是:单个office进程在文件转换达到指定转换文件个数(maxTasksPerProcess)的时候,将会重启。

kkFileView内部代码

执行完一个文件,taskCount++。
taskCount = maxTasksPerProcess 就会重启
在这里插入图片描述

解决方案

  1. 可以将maxTasksPerProcess配置改小一点。
  2. 修改代码。

修改代码方案

修改代码思路:单个office进程在进行转换文件的时候,当转换到一定的字节大小时,进行重启

  1. OfficeTask接口增加一个获取当前转换文件的接口
  2. 其次在AbstractConversionTask抽象类中增加具体实现
  3. 修改execute执行判断逻辑,这时maxTasksPerProcess属性就不是文件转换的个数了,而是单个office进程能够转换字节大小。如果小于指定大小,则进行累加,直至大于等于配置,重启。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值