[英]Returning Response while doing a background process in Spring boot
我正在使用 spring 引导来处理一个巨大的 excel 文件。 由于这是一个耗时的过程,我想在处理我的文件之前返回记录总数(作为响应)(在处理文件之后我返回记录作为响应)。 我该怎么做?
您可以使用 Apache POI 获取总行数。
File file = new File(filePath);
XSSFWorkbook myExcelBook = new XSSFWorkbook(new FileInputStream(file));
XSSFSheet myExcelSheet = myExcelBook.getSheetAt(0);
XSSFRow headerRow = myExcelSheet.getRow(0);
int totalRows = myExcelSheet.getPhysicalNumberOfRows();
totalRows
返回 excel 表中的总行数。
已编辑
您可以使用两个方法调用来做同样的事情。
String file="/path/to/file";
int count=getExcelRecordCount(file);
Records records= getActualExcelRecords(file);
听起来像 spring 批处理是个好主意。 您的第一步将通过导入数据并计算唯一标识符的实例数来检查文件中的行数。 或者,如果您知道分隔符(管道 |?逗号,?)和预期列的数量,您可以只计算文件中分隔符的数量,然后将其除以字段(或列)的数量,您就有了行。
在您的下一个 spring 批处理步骤中,您可以执行 rest 的处理。
希望这有帮助,先锋!
玩得开心 Boot,它非常固执己见。 但如果你和 spring 都想要同样的东西哈哈。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.