华光 ETL 同步顺序接口优化:异步执行避免阻塞
// private static final Object lock = new Object(); // // /** // * 整合华光etl同步顺序 // * // * 一个方法是将运行任务的代码放在一个新的线程中运行。这样,在调用该方法时,会立即返回,不会等待任务执行完毕。同时,在任务执行完毕后,可以通过回调或者其它方式将执行结果返回给调用者。 // /** // * 整合华光etl同步顺序 // * // * 一个方法是将运行任务的代码放在一个新的线程中运行。这样,在调用该方法时,会立即返回,不会等待任务执行完毕。同时,在任务执行完毕后,可以通过回调或者其它方式将执行结果返回给调用者。 // @AutoLog(value = "整合华光etl同步顺序") // @ApiOperation(value = "整合华光etl同步顺序", notes = "整合华光etl同步顺序") // @GetMapping(value = "/list") // public Result<?> list() throws java.lang.Exception { // try { // Thread thread = new Thread(() -> { // synchronized(lock) { // log.info("开始销售订单"); // JSONObject result = odsSalesOrderHeaderService.createSalesOrderToSAP(); // if (result.get("success").equals(false)){ // //发送邮件 // sendMail2(result.getString("message")); // // 将错误信息保存起来,供回调或者其它方式返回给调用者 // // ... // } // } // }); // thread.start(); // } catch (Exception e) { // return Result.error("接口正在被其他人访问,请等看后再试"); // } // return Result.ok("同步成功!"); // } // // 在上面的代码中,将任务代码放在一个新的线程中运行,这样在调用该方法时会立即返回,不会等待任务执行完毕。同时,可以将执行结果通过回调或者其它方式返回给调用者。
原文地址: https://www.cveoy.top/t/topic/qf0q 著作权归作者所有。请勿转载和采集!