12.使用若依异步的功能

引言

在软件开发中,经常会遇到耗时操作,有时候耗时操作会对主逻辑的运行时间有影响,但是耗时的操作又不需要实时反馈,就可以使用异步操作。比如日志的记录,启动程序时,也可以降一下启动时候的耗时操作,进行异步,先把程序启动起来,然后异步操作慢慢执行。

若依用法

常见的就是日志的记录,以登录为例:

AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));

AsyncManager.me()是一个线程池的单例,execute执行的是一个timetask方法。

项目实战

在某个项目中,可以将某些逻辑进行异步化。比如启动时候异步加载资源与异步执行业务逻辑。

// 案例1:
// 配置人脸检测器的激活
        if (isFaceActive){
            // 初始化人脸检测器
            FaceEngineUtil faceEngineUtil = FaceEngineUtil.getInstance();
            faceEngineUtil.activate(appId,sdkKey,activeKey,enginLibPath);
            faceEngineUtil.initFaceEngine(enginLibPath);
            FaceEngine faceEngine = faceEngineUtil.getFaceEngine();
            AsyncManager.me().execute(new TimerTask() {
                @Override
                public void run() {
                    //批量注册人脸库中的人脸
                    faceEngineUtil.registerFaceImgPath(faceEngine,faceRepo);
                }
            });
        }
// 案例2:
		// 转化为jsonobject对象
        JSONObject attendanceUploadJO = (JSONObject) JSON.toJSON(attendanceUpload);

        // 获得当前对象
        EventApiServiceImpl eventApiService = this;
        AsyncManager.me().execute(new TimerTask() {
            @Override
            public void run() {
                // 调用考勤 接口
                eventApiService.uploadAttendanceInfo(attendanceUploadJO);
            }
        });

总结,不用非得到若依的framework组件中去写代码,直接在程序中进行异步即可。

你可能感兴趣的:(若依框架专栏,综合解决方案,java,前端,服务器)