自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 项目实训-中医药知识图谱10

前端界面完成,展示概况:页面展示:

2022-06-12 13:48:57 236 1

原创 项目实训-中医药知识图谱9

fancybox具体使用最基本的用法是通过添加 data-fancybox 属性到一个超链接标签。标题可以通过 data-capiton 添加。例如:复制代码在 CodePen 上查看例子这种方式使用默认的配置,可以查看选项进行自定义配置,或者使用data-options属性。使用 jQuery 选择器选择...

2022-06-12 10:53:07 183

原创 项目实训-中医药知识图谱8

JQuery.fancybox部分应用Fancybox使用方法:1、引入jquery核心库和Fancybox插件库可选

2022-06-12 10:49:47 138

原创 项目实训-中医药知识图谱7

前端主界面部分代码

2022-06-12 10:41:15 389

原创 项目实训-中医药知识图谱6

JS部分代码主要采用JQuery库Bootstrap的每个组件,都只是仅仅提供了框架和样式,要让组件具有交互行为和动态效果,还需要JavaScript插件的配合。Bootstrap的所有插件,都是建立在jQuery框架基础上的标准jQuery插件。因此,在导入插件前,还要导入jQuery库。如:Bootstrap的 bootstrap.js 和 bootstrap.min.js 文件中包含了所有的插件,前者是未压缩版本,后者是压缩版本......

2022-06-12 10:26:24 132

原创 项目实训-中医药知识图谱5

引入了基于 Bootstrap 框架的 SB Admin 2 作为系统的主题,从 Start Bootstrap 网站可以预览并下载这个主题上边框导航栏 nav.navbar.navbar-default.navbar-static-top navbar-static-top 是指导航条随页面滚动而消失, navba...

2022-06-09 18:39:19 223

原创 项目实训-中医药知识图谱4

OwlCarousel使用Owl Carousel 可以让帮助创建漂亮的响应式旋转木马的jQuery插件,它支持移动触摸屏,功能十分强大。Owl的新特性有:可以无限循环、项目可以居中显示、灵活的速度控制、多级别的padding设置、项目间可以设置Margin、使几乎所有的选项都具有响应能力、多种宽度设置、丰富的回调事件、RTL(从右向左移动)、视频支持、锚链接导航、合并项Owl Carousel 2的目录结构如下:owlcarousel/├── assets/│ ├── owl.carousel.css

2022-06-09 18:34:33 127

原创 项目实训-中医药知识图谱3

项目实训-中医药知识图谱

2022-06-09 18:32:34 192

原创 项目实训-中医药知识图谱2

项目实训中医药知识图谱

2022-06-09 18:26:38 182

原创 项目实训-中医药知识图谱

目前整体结构:文件树整体结构:1) app.py是整个系统的主入口2) templates文件夹是HTML的页面 |-index.html 欢迎界面 |-search.html 搜索中医药关系页面 |-all_relation.html 所有中医药关系页面 |-KGQA.html 中医药关系问答页面3) static文件夹存放css和js,是页面的样式和效果的文件4) raw_data文件夹是存在数据处理后的三元组文件5)...

2022-05-19 20:16:47 814

原创 2021SC@SDUSC(dolphinscheduler- common)

继续分析DependentTaskallDependentTaskFinish是一个非常重要的逻辑。private boolean allDependentTaskFinish(){ boolean finish = true; for(DependentExecute dependentExecute : dependentTaskList){ for(Map.Entry<String, DependResult> entry: dependentEx

2021-12-14 19:22:06 1526

原创 2021SC@SDUSC(dolphinscheduler- common5)

TaskScheduleThreadTaskScheduleThread的功能是比较简单了,毕竟到这一步就要执行具体的逻辑了。public void run() { try { // update task state is running according to task type updateTaskState(taskInstance.getTaskType()); logger.info("script path : {}",

2021-12-13 09:20:37 188

原创 2021SC@SDUSC(dolphinscheduler- common4)

下面就分析一下master的启动过程。MasterServer先看MasterServer源码概览,它是一个SpringBoot普通应用,可以有Autowired字段。有三个主要的方法:run/stop/heartBeatThread。根据经验和注释大胆猜测一下,run是master的主要启动逻辑;stop负责优雅退出(销毁资源、容灾等);heartBeatThread负责与zk的心跳。先从非主干逻辑分析,那就是heartBeatThread。private Runnable hear

2021-12-02 19:40:14 1401

原创 2021SC@SDUSC(dolphinscheduler- common3)

接下来看看作业是如何提交的,也比较简单,就是调用了processDao.submitTask。protected TaskInstance submit(){ Integer commitRetryTimes = conf.getInt(Constants.MASTER_COMMIT_RETRY_TIMES, Constants.defaultMasterCommitRetryTimes); Integer commitRetryInterval = conf.

2021-11-26 20:10:03 1381

原创 2021SC@SDUSC(dolphinscheduler- common2)

activeTaskNode是一个非常重要的对象,从上一篇文章的分析中,可以猜测,activeTaskNode是由submitPostNode间接生成赋值的,并通过while循环驱动了整个流程实例的执行。private void submitPostNode(String parentNodeName){ List<TaskInstance> submitTaskList = null; if(parentNodeName == null){ submit

2021-11-20 16:55:45 834

原创 2021SC@SDUSC(dolphinscheduler- common)

executeProcess按顺序调用了prepareProcess、runProcess、endProcess三个方法,简单来说就是初始化、执行、释放资源。 prepareProcess又按顺序调用了initTaskQueue、buildFlowDag。initTaskQueue就是一些资源的初始化操作,比如通过流程定义ID查询到当前的任务实例。下面是其核心逻辑,可以发现,就是查询了完成的任务列表,报错且不能重试的任务列表。List<TaskInstance> taskInstanc

2021-11-16 21:00:00 245

原创 2021SC@SDUSC(dolphinscheduler- common)

在深入分析run之前,先简单分析一下 Stopper.isRunning() 的逻辑。/** * if the process closes, a signal is placed as true, and all threads get this flag to stop working */public class Stopper { private static volatile AtomicBoolean signal = new AtomicBoolean(false);

2021-11-14 14:23:43 313

原创 2021SC@SDUSC(dolphinscheduler- common)

SchedulerController、SchedulerService考虑到Controler逻辑非常简单(不合理),此处将controller和service合并分析。同样SchedulerController几乎没有什么逻辑,全都交给了SchedulerService层。这里只分析SchedulerService.insertSchedule,简单浏览代码后,可以发现它跟createProcessDefinition逻辑差不多:校验当前用户是否拥有所属项目的权限 校验流程定义JSON是否

2021-11-10 20:38:40 680

原创 2021SC@SDUSC(dolphinscheduler-api3)

ProcessDefinitionServiceorg.apache.dolphinscheduler.api.service.ProcessDefinitionService承担流程定义具体的CURD逻辑,调用各种mapper、dao。public Map<String, Object> createProcessDefinition(User loginUser, String projectName, String name,

2021-11-10 20:33:12 433

原创 2021SC@SDUSC(dolphinscheduler-MasterSchedulerService)

在API模块的分析中,我们知道了当任务到达定时器定义的时间时,会在t_ds_command表中生成一条记录。那么谁去消费这张表里的这条记录呢?下面我们分析MASTER模块。类定义@Servicepublic class MasterSchedulerService extends Thread 可以看出该类继承了线程基类,那该类就可以在线程池内执行。类属性 /** * logger of MasterSchedulerService */

2021-10-20 15:45:00 174

原创 2021SC@SDUSC(dolphinscheduler-api2)

api模块主要提供对外接口,界面上的对流程、定时的管理等相关操作都是通过调用API模块的接口实现的,API模块直接跟数据库打交道,不会与master和worker模块交互。相关接口概览同时由于api模块集成了swagger,我们可以通过访问 http://xxxx/dolphinscheduler/doc.html来查看详细的API说明流程定时调度逻辑:当我们创建好流程,并对流程增加定时管理后,dolphin是如何定时去调度流程的呢?该部分逻辑其实也是在API模块,分析如下:..

2021-10-18 20:05:23 433

原创 2021SC@SDUSC(dolphinscheduler-api)

dolphinscheduler-apiAPI接口层,主要负责处理前端UI层的请求。该服务统一提供RESTful api向外部提供请求服务。 接口包括工作流的创建、定义、查询、修改、发布、下线、手工启动、停止、暂停、恢复、从该节点开始执行等等。涉及的API太多,不宜深入研究,只研究其大致框架、功能。具体的API列表及其使用方法可查看官方文档启动入口org.apache.dolphinscheduler.api下面有两个类:ApiApplicationServer、CombinedApplic

2021-10-06 20:58:40 1093

原创 2021SC@SDUSC(DolphinScheduler报告)

2021SC@SDUSC目录一.代码的下载和安装配置1.部署后端1.1后端安装,支持自动安装,源码编译安装,这里使用自动安装1.2报错解决2.部署前端2.1下载安装包并解压2.2执行自动化安装部署脚本2.3报错解决​二.组内任务划分:一.代码的下载和安装配置安装包下载地址:https://dolphinscheduler.apache.org/en-us/docs/user_doc/download.html1.部署后端1.1后端安装,支持自动安装

2021-09-29 19:09:59 269

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除