Java多线程导出,单线程压缩

1.客户端网页下载文件, 如果文件比较大,后台要进行压缩在传输给客户端。

2.后台进行压缩以后,要保存到服务器硬盘上, 当下次请求下载,则直接传输。

3.当请求下载的压缩文件不存在,需要查询数据,生成csv,最后将多个文件进行压缩保存到服务器硬盘上。

4.多线程进行查询,单线程进行压缩。

先看一个方法:

       public String accountingVerificationExport(String zipFileName) {
		String zipSrc = "";
		try {
			/**
			 * 导出到本地, 然后压缩成zip,并返回zip文件地址
			 */
			zipSrc = exportToLocation(zipFileName);
		} catch(Exception ex) {
			LOGGER.info("exec accountingVerificationExport error.{}", ex.getMessage());
		}
		return zipSrc;
	}
方法的参数zipFileName是指定压缩之后文件名.exportLocation

        /**
	 * 启动四个线程,同步导出
	 * @param zipFileName
	 * @return
	 */
	private String exportToLocation(String zipFileName) {
		ResourceLoadUtil rlu = new ResourceLoadUtil("/hx.properties");
		final Properties prop = rlu.getProp();
		final String exportLocation = prop.getProperty("hx.export.location.href");
		
		final CountDownLatch end = new CountDownLatch(4);		//子线程
		
		final String [] typeName = new String[]{"receipt","output1","output2","back"};
		final List<String> fileSrcs = new ArrayList<String>();// 用于存放生成的文件名称
		final SessionFactory sessionFactory = accountingVerificati
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值