大数据量处理以及结果导出技术方案

1 方案

(1)数据处理接口
采用异步处理数据,快速返回一个redis的key。异步处理结果以excel等文件形式存储于oss等文件存储系统中,并以接口返回的key作为redis的key,oss下载地址作为值将下载地址存储于redis中,设置一定的过期时间。

(2)结果导出接口
通过数据处理接口返回的key获取下载地址。页面直接访问该链接地址获取处理结果并自动导出。

2 示例

示例代码如下所示。

/**
 * 数据处理接口
 */
@GetMapping("/testDealData")
@ResponseBody
public WebResponse testDealData() {
	try {
		String resultKey = IdUtil.getSnowflakeNextIdStr();
		CommonThreadPoolUtil.submitTask("数据处理", () -> manualDealDataService.testDealData(resultKey));
		return WebResponse.success(resultKey);
	} catch (Exception e) {
		log.error("数据处理失败。", e);
		return WebResponse.error("数据处理失败");
	}
}

/**
 * 结果导出接口
 */
@GetMapping("/downloadResult/{resultKey}")
public String downloadResult(@PathVariable("resultKey") String resultKey) {
	return (String) RedisUtil.get(resultKey);
}

你可能感兴趣的:(Java开发包,数据处理,java)