- 博客(23)
- 收藏
- 关注
原创 项目实训-中医药知识图谱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
原创 项目实训-中医药知识图谱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
原创 项目实训-中医药知识图谱
目前整体结构:文件树整体结构: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关注的人