YunaiV / ruoyi-vue-pro

🔥 官方推荐 🔥 RuoYi-Vue 全新 Pro 版本,优化重构所有功能。基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 微信小程序,支持 RBAC 动态权限、数据权限、SaaS 多租户、Flowable 工作流、三方登录、支付、短信、商城、CRM、ERP、AI 大模型等功能。你的 ⭐️ Star ⭐️,是作者生发的动力!
https://doc.iocoder.cn/
MIT License
28k stars 6k forks source link

1、 如上图代码, 在多线程请求下, client 会被重复创建和初始化 2、如果配置文件发生变化,ftp和sftp 在做refresh刷新的情况下,并没有close 掉原来的ftp或sftp, #709

Open syubun opened 2 days ago

syubun commented 2 days ago

碰到问题,请在 https://github.com/YunaiV/ruoyi-vue-pro/issues 搜索是否存在相似的 issue。

不按照模板提交的 issue,会被系统自动删除。

基本信息

image @Override @SuppressWarnings("unchecked") public <Config extends FileClientConfig> void createOrUpdateFileClient(Long configId, Integer storage, Config config) { AbstractFileClient<Config> client = (AbstractFileClient<Config>) clients.get(configId); if (client == null) { client = this.createFileClient(configId, storage, config); client.init(); clients.put(client.getId(), client); } else { client.refresh(config); } } 1、 如上图代码, 在多线程请求下, client 会被重复创建和初始化 2、如果配置文件发生变化,ftp和sftp 在做refresh刷新的情况下,并没有close 掉原来的ftp或sftp,

syubun commented 2 days ago

而且 感觉 FTPClient 并不是线程安全的,多个线程下 ,应该不能使用同一个FTPClient吧。