开源机器学习平台tipdm

TipDM建模平台

   tipdm开源的python机器学习建模平台,用户通过拖拉就可以实现模型开发。

项目结构

开源机器学习平台tipdm_第1张图片

backend :为java后台服务代码

frontedn :为vue js前端代码

mock-oauth-server:为java认证服务代码

主要分析backend后台服务代码,典型的java spring mvc web项目,项目结构如下:

开源机器学习平台tipdm_第2张图片

framework-common:公共代码,主要为工具类,spring相关公用类

framework-model: 实体类

framework-persist:持久层

framework-service:service层,就两个数据库操作相关的service 接口和抽象类

tipdm-server: 服务核心

本次主要介绍下tipdm-server 模型执行代码实现

模型执行入库在ProjectController类中的execute方法,逻辑是验证权限,加载流程文件,执行流程,主要代码:

WorkFlow workFlow = new WorkFlow(executionId, tokenModel.getUsername(), content);  //解析工作流文件,创建工作流对象
 String workFlowId = workFlowScheduler.execute(workFlow);//执行工作流

进入  workFlowScheduler.execute(workFlow)方法,主要代码:

  WorkFlowDexecutor dexecutor = new WorkFlowDexecutor(accessToken, flow, scheduler);//初始化dexecutor-core框架,构建流 程执行图
  //启动一个线程监听流程
  WorkFlowHandler workFlowHandler = new WorkFlowHandler(workFlowId, scheduler, dexecutor, semaphore);
   workFlowHandler.start();//执行流程

这里需要对dexecutor-core框架有些了解,dexecutor-core主要为了使用户可以简单快速构建执行依赖任务。

WorkFlowHandler 是个线程类继承了Thread,其run方法:

 @Override
    public void run() {
        this.dexecutor.execute(new ExecutionConfig().nonTerminating());  //通过dexecutor-core执行依赖任务
        release();
    }

实际最终执行任务的是JobProvider类中的provideTask方法,主要是通过构建quartz定时任务WorkFlowJobBean去执行,WorkFlowJobBean中的executeInternal方法执行IAlgorithm.run执行算法逻辑.

你可能感兴趣的:(tipdm)