1、在windows系统下启动rocketmq操作:
在bin目录下使用cmd
分别输入
start mqnamesrv.cmd
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
2、在stream流中需要new对象时,可能会出现new很多对象堆积在堆中,这是需要用try,finally在finally中将new的对象为null,并用gc收集
如下:
- List<ChildModelParamDTO> childModelParamDTOS = childModels.stream().map(childModel -> {
- ChildModelParamDTO childModelParamDTO=new ChildModelParamDTO();
- try {
- LambdaQueryWrapper<PredictionModelParam> eq1 = new QueryWrapper<PredictionModelParam>().lambda()
- .eq(PredictionModelParam::getPredictionModelId, childModel.getId());
- PredictionModelParam predictionModelParam = predictionModelParamMapper.selectOne(eq1);
- childModelParamDTO.setCode(childModel.getCode());
- childModelParamDTO.setName(childModel.getName());
- childModelParamDTO.setParameterWeight(predictionModelParam.getParameterWeight());
- return childModelParamDTO;
- }
- finally {
- childModelParamDTO=null;
- System.gc();
- }
- }).collect(Collectors.toList());
3、在使用easyexcel时,由于监听器无法被spring管理,所以无法在监听器内部使用mp,此时可以用重写的方式将
excel中数据添加进数据库中,如:
- EasyExcel.read(file, PredictionParamExcelDTO.class, new ReadListener<PredictionParamExcelDTO>() {
- @Override
- public void invoke(PredictionParamExcelDTO predictionParamExcelDTO, AnalysisContext analysisContext) {
- PredictionParam predictionParam = null;
- try {
- predictionParam = new PredictionParam();
- predictionParam.setMaterialCode(predictionParamExcelDTO.getMaterialCode());
- predictionParam.setMaterialName(predictionParamExcelDTO.getMaterialName());
- predictionParam.setProductionLine(predictionParamExcelDTO.getProductionLine());
- predictionParam.setCapacity(Integer.valueOf(predictionParamExcelDTO.getCapacity()));
- predictionParamService.save(predictionParam);
- } catch (Exception e) {
- e.printStackTrace();
- log.error("模板上传失败");
- throw e;
- }
- }
-
- @Override
- public void doAfterAllAnalysed(AnalysisContext analysisContext) {
-
- }
-
- }).sheet().doRead();
4、下载excel的同时,将数据写入excel中:
- try {
- httpServletResponse.setContentType("application/vnd.ms-excel");
- String fileName = URLEncoder.encode("D:/idea/idea_projects/mwlc-dcm-requirement-backend/predictionParamExcel.xlsx", "UTF-8");
- httpServletResponse.setHeader("content-disposition", "attachment;filename="+fileName);
-
- ServletOutputStream outputStream;
- outputStream=httpServletResponse.getOutputStream();
- EasyExcel.write(outputStream)
- .head(PredictionParamExcelDTO.class)
- .excelType(ExcelTypeEnum.XLSX)
- .sheet("日基准产能表模板")
- .doWrite(这里放需要写入excel的数据);
-
- outputStream.close();
-
-
- }catch (IOException o){
- throw new RuntimeException(o);
- }