任务调度方法、系统、设备及存储介质与流程

文档序号:23151879发布日期:2020-12-04 13:47阅读:84来源:国知局
任务调度方法、系统、设备及存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种任务调度方法、系统、设备及存储介质。



背景技术:

i17国际会计准则十分复杂,涉及十几个系统,几十个业务模块,任务依赖十分复杂;月结数据需要处理全量保单,时效要求高,一般需要在4号前完成。现有的人工操作系统运营成本高,效率低,所述系统必须实时监控系统运行情况,如果系统的服务宕机或系统异常,就需要人工重新调度。

进一步的,现有的任务调度系统是偏向运营的,该系统会把这一连串几十个任务都展现出来,导致业务员无法快速的获得到想要的信息,但实质上,作为业务员,他可能只想看到用户信息审核、投保、承保这三个大模块,因此,所述系统需要进一步优化。



技术实现要素:

本发明提供一种任务调度方法、系统、设备及存储介质,不但提高处理时效,节约运营成本,而且采用高可用架构与业务解耦,实现任务可视化,方便维护管理。

为实现上述目的,本发明提供了一种任务调度方法,包括:

梳理保单数据的各个业务,将业务细分至可独立执行的任务节点,并将所述任务节点数据配置进数据库;

配置数据库中任务节点的顺序关系,并通过预设条件表配置任务节点的执行条件;

接收需要调度的任务节点的任务信息,且设置所述任务节点的任务状态为待执行状态;

定时扫描任务状态为待执行状态的任务节点的任务信息,依据任务信息中的执行时间确定需要执行的目标任务节点;

启动需要执行的目标任务节点,并根据任务节点的顺序关系和预设条件表判断是否执行下一关联的任务节点;

若是,通知目标任务节点的后续任务节点执行相应的任务;

反馈任务执行信息至所述数据库。

优选的,所述配置数据库中任务节点的顺序关系,包括:

根据链表形式将关联任务节点配置成父子任务节点;

对父任务节点设置前置任务id,对子任务节点设置后置任务id,以实现父子任务节点的顺序。

优选的,所述根据链表形式将关联任务节点配置成父子任务节点,包括:

获取待处理的任务节点的任务信息,其中,任务信息与调用平台需要以异步调用方式调用的被调用任务节点提供的接口相关联;

响应于确定待处理的任务节点的任务为需处理的任务,基于待处理的任务,以异步调用方式调用被调用平台提供的接口;

执行与调用结果相关联的操作。

优选的,所述任务信息包括corn表达式,所述corn表达式包括任务节点的执行时间。

优选的,所述反馈任务执行信息给所述数据库,包括:

采用日志记录执行信息,并采用心跳检测失败任务,并通过预设条件表确定是否需要重试以及重试的次数;

根据任务执行信息更新日志。

优选的,所述任务调度方法还包括在任务调度过程中采用分布式锁确保任务不重复执行,包括:

针对每一个定时任务节点的任务,确定当前时间是否与所述定时任务节点的任务对应的执行时间相对应;

将定时任务节点的任务对应的setnx命令发送给外部的redis数据库;

确定是否接收到所述redis数据库根据所述setnx命令返回的第一回执结果,如果是,执行所述定时任务节点的任务对应的任务节点的任务逻辑,并在所述任务节点的任务逻辑执行完毕时,释放所述分布式锁,否则,确定所述分布式锁是否失效,如果失效,从所述redis数据库获取所述分布式锁对应的新锁,并将所述新锁作为分布式锁。

优选的,所述任务调度方法还包括:

配置待展示任务节点的任务;

展示待展示任务节点的任务。

此外,为实现上述目的,本发明还提供一种任务调度系统,包括:

业务模块,用于梳理保单数据的各个业务,将业务细分至可独立执行的任务节点,并将所述任务节点数据配置进数据库;

数据库,用于配置任务节点的顺序关系,并通过预设条件表配置任务节点的执行条件;

调度平台,用于接收需要调度的任务节点的任务信息,且设置所述任务节点的任务状态为待执行状态;

定时任务模块,用于定时扫描任务状态为待执行状态的任务节点的任务信息,依据任务信息中的执行时间确定需要执行的目标任务节点;

所述调度平台启动需要执行的目标任务节点,并根据任务节点的顺序关系和预设条件表判断是否执行下一关联的任务节点,若是,通知目标任务节点的后续任务节点执行相应的任务,所述调度平台反馈以上任务执行信息至所述数据库。

此外,为实现上述目的,本发明还提供一种设备,所述设备包括处理器、与所述处理器耦接的存储器,其中,

所述存储器存储有用于实现如上所述任务调度方法的程序指令;

所述处理器用于执行所述存储器存储的程序指令。

此外,为实现上述目的,本发明还提供一种存储介质,存储有能够实现如上所述任务调度方法的程序文件。

本发明提供了一种任务调度方法、系统、设备及存储介质,其中,所述方法通过将各保单系统各业务分解成可独立执行的任务节点,并通过任务调度实现了高效的任务处理和保单结算,不但提高了处理时效,还节约了运营成本。

附图说明

图1为本发明实施例的任务调度方法的流程图;

图2为本发明实施例的配置任务节点的顺序关系的流程图;

图3为本发明实施例的采用mq异步调用任务的流程图;

图4为本发明实施例的反馈任务执行信息的流程图;

图5为本发明实施例的任务调度过程中采用分布式锁的流程图;

图6是本发明实施例的展示任务节点的任务的流程图;

图7是本发明实施例的任务调度系统的结构示意图;

图8是本发明实施例的任务调度系统的另一结构示意图;

图9是本发明实施例的设备的结构示意图;

图10是本发明实施例的存储介质的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参考图1,本发明提供了一种任务调度方法,包括:

s1、梳理保单数据的各个业务,将业务细分至可独立执行的任务节点,并将所述任务节点数据配置进数据库。

具体的,本发明是应用到保险的保单月结数据处理,需梳理不同系统中不同业务组的业务,即梳理全量保单数据的各个业务,一般按照保单业务的特征和节点进行梳理,并进行归纳,以形成可独立执行的任务节点。例如,如果按照开发流程购买保单,那么该业务就需要拆分成:用户信息审核、投保、承保等任务节点,即将业务细分至可独立执行的任务节点。进一步的,本发明通过设置业务模块来梳理不同保单系统中不同业务组的业务,以形成可独立执行的任务节点,并被配置进数据库中。

s2、配置数据库中任务节点的顺序关系,并通过预设条件表配置任务节点的执行条件。

具体的,请参考图2,所述配置数据库中任务节点的顺序关系,包括:

s21、根据链表形式将关联任务节点配置成父子任务节点;

具体的,所述数据库采用任务依赖模式,以并行方式、串行方式以及并行&串行方式实现任务节点的顺序关系。其中,所述并行方式为多个父节点任务必须保证所有父节点任务都完成后,才可以执行子任务,并使用分布式锁控制,避免重复多次执行子任务;所述串行方式为一个任务完成执行下一个任务;所述并行&串行方式为同时满足并行方式和串行方式的属性特点。

s22、对父任务节点设置前置任务id,对子任务节点设置后置任务id,以实现父子任务节点的顺序。

具体的,所述顺序关系的实现包括配置前置任务id和后置任务id,已经执行条件里面也是配置任务id。通过任务id,可以实现不同业务之间的任务节点的调用。

具体的,所述预设条件表配置任务节点的执行条件是执行某个任务节点的条件,例如:该条件可能是某个表必须有的数据;该条件可能是某个任务节点是必须要完成的;该条件是某个配置项开关必须是启动的;等等。

s3、接收需要调度的任务节点的任务信息,且设置所述任务节点的任务状态为待执行状态。

具体的,所述任务节点的任务类型包括单次型任务和重复型任务,单次型认识表示该任务节点的任务为单次型任务,只执行一次;重复型任务表示该任务节点的任务为重复型任务节点,可重复执行。所述任务节点的任务类型由所述数据库进行预先设置。

本实施例中,可通过mq异步调用或http同步调用来实现任务节点的任务调用。优选的,请参考图3,选用mq异步调用来实现任务节点的任务调用,包括:

s31、获取待处理的任务节点的任务信息,其中,任务信息与调用平台需要以异步调用方式调用的被调用任务节点提供的接口相关联;

具体的,所述任务信息包括corn表达式,所述corn表达式包括任务节点的执行时间。

s32、响应于确定待处理的任务节点的任务为需处理的任务,基于待处理的任务,以异步调用方式调用被调用平台提供的接口;

s33、执行与调用结果相关联的操作。

s4、定时扫描任务状态为待执行状态的任务节点的任务信息,依据任务信息中的执行时间确定需要执行的目标任务节点。

具体的,定时任务配置分为系统配置和人工配置,所述系统配置可以实现自动化,以通过任务调度来配置定时任务,并去触发执行任务,进一步的,所述定时任务核心是corn表达式,根据需求进行配置;所述人工配置是通过页面手工触发任务。本实施例中,是通过系统配置实现,所述corn表达式包含任务节点的执行时间,对于重复型任务来说,其corn表达式中还包括任务节点的任务的下次计划执行时间、间隔时间等信息。本发明的实施例会同时存在有多个任务状态为待执行状态的任务,但是每个任务的执行时间可能在下次扫描时间之前,也可能在下次扫描时间之后。由此,扫描各个处于待执行状态的任务信息,根据各个任务节点的任务信息中的corn表达式中的执行时间,确定各个任务节点的执行时间,从而确定任务节点的执行时间在下次扫描时间之前的任务节点为需要执行的目标任务。进一步的,对于控制调度来说,通过url配置化,使用resttemplate实现动态调用,任务调用有多种通知方式,比如通过mq广播或邮件等方式。

s5、启动需要执行的目标任务节点,并根据任务节点的顺序关系和预设条件表判断是否执行下一关联的任务节点,若是,通知目标任务节点的后续任务节点执行相应的任务;

具体的,在完成目标任务节点后,根据任务节点的顺序关系和预设条件表选择执行下一关联的任务节点的任务。所述调度平台根据配置是否执行后置任务、发送mq等操作,进行相关联的业务操作。

s6、反馈任务执行信息至所述数据库。

具体的,在完成任务后或者调用任务时,可以通过配置mq、邮件等方式通知任务完成信息及跨模块任务完成信息。

请参考图4,所述反馈任务执行信息至所述数据库,包括:

s61、采用日志记录执行信息,并采用心跳检测失败任务,并通过预设条件表确定是否需要重试以及重试的次数;

具体的,日志记录执行计划和记录执行过程,在执行某任务节点的任务的过程中,采用心跳检测,每隔一段时间就和这个任务通信,如果目标任务在一定的时间阈值内回复,那么我们就说这个任务是活跃的、有效的,否则该任务就是失败任务,对于失败任务,通过日志的记录信息及预先设置的任务配置信息判断是否要重试,如果需要重试,则可以预设重试的次数。进一步的,以上任务失败或任务重试,可以通过配置mq、邮件等方式通知。

s62、根据任务执行信息更新日志。

进一步的,日志记录还包括在数据库中的日志更新,以全面记录整个全量保单处理过程。

在一个可选的实施例中,请参考图5,所述任务调度方法还包括在任务调度过程中采用分布式锁确保任务不重复执行,包括:

s71、针对每一个定时任务节点的任务,确定当前时间是否与所述定时任务节点的任务对应的执行时间相对应;

s72、将定时任务节点的任务对应的setnx命令发送给外部的redis数据库;

s73、确定是否接收到所述redis数据库根据所述setnx命令返回的第一回执结果,如果是,执行所述定时任务节点的任务对应的任务节点的任务逻辑,并在所述任务节点的任务逻辑执行完毕时,释放所述分布式锁,否则,确定所述分布式锁是否失效,如果失效,从所述redis数据库获取所述分布式锁对应的新锁,并将所述新锁作为分布式锁。

在一个可选的实施例中,请参考图6,所述任务调度方法还包括:

s81、配置待展示任务节点的任务;

其中,所述任务调度方法采用配置模块建立实际业务和待展示任务的映射,并保存至数据库。具体的,配置模块通过预设的配置信息,在前端,例如电脑端或手机端实现可视化操作,前端通过g6引擎可扩展的<key,value>的形式,动态将业务对任务的一些特性化需求保存下来。例如:页面任务的一些展现位置,保存坐标;例如:一些任务的特殊备注信息等;例如:采用拖拽的形式配置任务,并且还可以通过配置模块,在配置模块下设多个任务,实现多层级管理。

s82、展示任务节点的任务。

具体的,如果按照开发流程购买保单,那么任务就需要拆分成:用户信息审核、投保、承保等,而这三步在程序中节点需要校验和计算,例如投保需要进行职业、性别、年龄等校验,需要进行保费计算等。传统的任务调度是偏向运营,它会把这一连串几十个任务都展现出来,给人眼花缭乱的感觉,尤其是对于保单月结数据处理的对象,如业务员,在使用上更是不友好,在业务员去使用时候,他可能只想看到用户信息审核、投保、承保这三个大模块,所以本发明实现了实际任务和业务展现任务的映射,即通过配置模块进行映射,并保存到数据库中,然后通过显示模块展示任务节点的任务。本发明通过实际任务和业务展现任务的映射,面向业务员只展现业务员所关心的模块,极大的提升了业务员的体验,提供了业务员的工作效率。

在一个可选的实施方式中,还可以:将所述处理全量保单的任务调度方法的结果上传至区块链中。

具体地,基于所述处理全量保单的任务调度方法的结果得到对应的摘要信息,具体来说,摘要信息由所述处理全量保单的任务调度方法的结果进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户可以从区块链中下载得该摘要信息,以便查证所述处理全量保单的任务调度方法的结果是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

请参考图7,本发明还提供了一种任务调度系统100,包括业务模块20、数据库30、调度平台40、定时任务模块50和通讯模块60。

所述业务模块20,用于梳理保单数据的各个业务,将业务细分至可独立执行的任务节点,并将所述任务节点数据配置进数据库30。

所述数据库30,用于配置任务节点的顺序关系,并通过预设条件表配置任务节点的执行条件。一实施例中,所述数据库以链表形式将关联任务节点配置成父子任务节点;对父任务节点设置前置任务id,对子任务节点设置后置任务id,以实现父子任务节点的顺序。

所述调度平台40,用于接收需要调度的任务节点的任务信息,且设置所述任务节点的任务状态为待执行状态。一实施例中,可选用mq异步调用来实现任务节点的任务调用,包括:获取待处理的任务节点的任务信息,其中,任务信息与调用平台需要以异步调用方式调用的被调用任务节点提供的接口相关联;响应于确定待处理的任务节点的任务为需处理的任务,基于待处理的任务,以异步调用方式调用被调用平台提供的接口;执行与调用结果相关联的操作。

所述定时任务模块50,用于定时扫描任务状态为待执行状态的任务节点的任务信息,依据任务节点的任务信息中的执行时间确定需要执行的目标任务节点。

所述调度平台40启动需要执行的目标任务节点,并根据任务节点的顺序关系和预设条件表判断是否执行下一关联的任务节点,若是,通知目标任务节点的后续任务节点执行相应的任务,所述调度平台40反馈任务执行信息至所述数据库30。一实施例中,所述反馈任务执行信息至所述数据库30包括:采用日志记录执行信息,并采用心跳检测失败任务,并通过预设条件表确定是否需要重试以及重试的次数;根据任务执行信息更新日志。

所述通讯模块60,用于通过配置mq、邮件等方式在任务执行过程中通知任务执行信息。

在一个可选的实施例中,请参考图8,所述任务调度系统100还包括配置模块70和显示模块80,所述配置模块70建立实际任务和业务展现任务的映射,以配置待展示任务节点的任务,并保存至数据库30,所述显示模块80展示待展示任务节点的任务。

在一个可选的实施例中,所述任务调度系统100,采用如下方法实现在任务调度过程中采用分布式锁确保任务不重复执行,包括:针对每一个定时任务节点的任务,确定当前时间是否与所述定时任务节点的任务对应的执行时间相对应;将定时任务节点的任务对应的setnx命令发送给外部的redis数据库;确定是否接收到所述redis数据库根据所述setnx命令返回的第一回执结果,如果是,执行所述定时任务节点的任务对应的任务节点的任务逻辑,并在所述任务节点的任务逻辑执行完毕时,释放所述分布式锁,否则,确定所述分布式锁是否失效,如果失效,从所述redis数据库获取所述分布式锁对应的新锁,并将所述新锁作为分布式锁。

本发明提供了一种任务调度方法及系统,通过将各保单系统各业务分解成可独立执行的任务节点,并通过任务调度实现了高效的任务处理和保单结算,不但提高了处理时效,节约了运营成本,而且还采用高可用架构与业务解耦,实现任务可视化,方便维护管理。进一步的,为提升保单业务的用户体验,本发明还实现了实际任务和业务展现任务的映射,以展示必要的业务任务。所述方法及系统适用于科技金融领域,同时本发明还涉及区块链技术。

请参考图9,图9为本发明实施例的设备的结构示意图。如图9所示,该设备200包括处理器201及和处理器201耦接的存储器202。

存储器202存储有用于实现上述任一实施例所述任务调度方法的程序指令。

处理器201用于执行存储器202存储的程序指令。

其中,处理器201还可以称为cpu(centralprocessingunit,中央处理单元)。处理器201可能是一种集成电路芯片,具有信号的处理能力。处理器201还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

参阅图10,图10为本发明实施例的存储介质的结构示意图。本发明实施例的存储介质存储有能够实现上述所有方法的程序文件301,其中,该程序文件301可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1