记一次多文件上传到FTP遇到的线程并发问题

使用layui插件异步上传多张图片至FTP时,出现部分文件上传失败的问题。debug发现FtpClient.storeFile()报错,原因在于FtpUtil中静态方法导致的并发问题。解决方法为对上传方法加synchronized。

问题发生的直观描述:在通过layui多文件上传插件用异步的方式上传多张图片文件至ftp时出现文件有的成功,有的失败。完全随机的。

debug结论:在FtpClient.storeFile()时报connect is not open 的IO异常有的还有connect closed when copying.

出现的原因:Fileinput会同时请求后端的upload接口,然而FtpUtil里面将FtpClient和上传的方法全都写成static了,可能是当时为了方便直接调方法 而不用new对象。这样又节约内存?这时就发生了并发情况下出现的一系列问题。

解决办法:1.将上传文件的方法加synchronized。最简单的但肯定不好的
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值