
分布式调度
余冰涛
北邮网络空间安全专业17级硕士,在实验室的主要研究方向是调度平台的应用与开发,涉及部分分布式内容以及后台开发内容。
展开
-
新任务管理系统YYSchedule-细节-spring整合线程池
一、需求在新调度平台中,我们使用了许多的队列,在任务量较大的情况下,我们必须保证从队列中取出任务并执行的效率。对于一些处理比较慢的任务,如果采用单线程,则会造成队列拥堵,我们需要使用多线程技术。二、实现1、config.properties中配置:### THREAD POOL SETTINGS ###cool_pool_size = 5keep_alive_seconds ...原创 2018-08-29 17:22:35 · 346 阅读 · 1 评论 -
新任务管理系统YYSchedule-介绍-任务下发机制
一、介绍任务下发机制是调度平台YYSchedule的主干部分,本篇博客将分为四个部分进行描述,分别是:1、介绍“任务”这一概念2、介绍用户如何向控制节点下发任务3、介绍任务下发机制4、介绍任务下发机制的具体队列图二、任务 调度平台的任务结构如下图所示: 用户下发一个mission为单位的任务,每个mission含有多个job,每个job分别对应一种执...原创 2018-08-29 10:10:27 · 2354 阅读 · 0 评论 -
新任务管理系统YYSchedule-细节-队列优先级实现
一、介绍 在本调度平台中,将以job为单位进行优先级设定,为什么要进行优先级设定呢? 举个例子: 一小时前用户A下发了100个病毒检测应用程序的任务,而现在突然想尽快检测新拥有的50个应用,但之前的100个检测任务并未完全执行完,如果不设置优先级,则新下发的50个任务进行排队,等待上一次100个应用程序检测完成后再进行检测。 如果设置了优先级,则每个节点会获取优先级高...原创 2018-08-31 09:20:56 · 714 阅读 · 1 评论 -
新任务管理系统YYSchedule-介绍-任务节点监测机制
注:任务节点监测机制是在结果回收机制之后。本章将介绍"任务节点监测机制",该机制可使控制节点taskmanager实现对任务节点node的控制作用。而该机制主要由 "结果状态统计模块” ,以及 "任务节点监测模块" 组成,总体流程图如下所示:任务节点监测机制一、结果状态统计模块在"结果回收机制"的流程图中,出现了结果状态统计模块,但当时并未进行介绍。结果状态统计模块,是将所有回...原创 2018-08-20 14:40:00 · 599 阅读 · 0 评论 -
新任务管理系统YYSchedule-细节-引擎执行机制
一、介绍本篇博客将介绍node节点调用命令行执行引擎的具体方法。我们需要提前了解的是,在YYSchedule中,一个node节点对应着一个引擎。所有引擎的调用方式都是通过命令行进行调用,比方说,有人写了一个计算的程序,想把它整合到YYSchedule中,那么他就必须让该程序可以通过命令行进行调用,例如java程序就得打成jar包,而他所写的程序便成为了YYSchedule所定义的引擎。...原创 2018-08-07 12:23:10 · 300 阅读 · 0 评论 -
新任务管理系统YYSchedule-介绍-引擎执行机制及结果回收机制
注:结果回收机制是在下发任务机制之后。一、引擎的执行当用户下发了一批任务,这批任务会通过下发任务机制,下发到每个引擎(engine)中并进行执行。引擎执行任务时,可能会出现如下几种情况:1、程序顺顺利利地执行成功2、程序在执行过程中,出现了一些致命的错误,导致程序被强制中断。3、程序在执行过程中,通过程序自身发现一些错误,错误会导致没有最终结果出现,但不会中断程序的执行。...原创 2018-08-14 14:55:44 · 431 阅读 · 0 评论 -
新任务管理系统YYSchedule-细节-spring整合quartz2.x
一、quartz简介 Quartz是一个开源的任务调度框架。基于定时、定期的策略来执行任务是它的核心功能,比如x年x月的每个星期五上午8点到9点,每隔10分钟执行1次。Quartz有3个核心要素:调度器(Scheduler)、任务(Job)、触发器(Trigger)。Quartz完全使用Java开发,可以集成到各种规模的应用程序中。它能够承载成千上万的任务调度,并且支持集群。它支持将数据存储...原创 2018-07-19 13:54:31 · 218 阅读 · 0 评论 -
新任务管理系统YYSchedule-细节-心跳机制实现node节点管理
本文关键技术:1、Sigar获取系统信息2、node通过心跳机制向task发送信息3、activemq获取队列信息 一、介绍当taskmanager收到一个总的任务mission时,会按照任务类型以mission --> job --> task 的 方式进行切分(详见博客“新调度平台-taskmanager之任务下发”),接下来taskmanager会对ta...原创 2018-07-23 20:42:44 · 561 阅读 · 0 评论 -
新任务管理系统YYSchedule-细节-taskmanager之生成id并保证唯一性
一、介绍 在调度平台中,下发任务的单位有三种,分别是mission,job,task,因此我们在代码中也必须生成相应格式的missionId,jobId以及taskId。 对于代码生成id,我们使用的是+1的方式来进行生成,也就是说,假如现在的jobId为xxxx111,那么我们在生成下一个job时,赋予其的jobId应该为xxxx112,这部分应该很好理解,我们第一反应应该...原创 2018-06-18 17:09:10 · 624 阅读 · 0 评论 -
调度平台YYSchedule-介绍-总体模块
YYSchedule是一个轻量级的分布式调度平台。主要用于用户与引擎的分布式交互。用户可以将自己的引擎打包成命令行可调用的形式,然后将其放入多个虚拟机中,再使用YYSchedule来进行管理。具体架构图如下所示:...原创 2018-12-19 15:34:45 · 329 阅读 · 0 评论