CN112148505A - 数据跑批***、方法、电子设备和存储介质 - Google Patents

数据跑批***、方法、电子设备和存储介质 Download PDF

Info

Publication number
CN112148505A
CN112148505A CN202010990015.2A CN202010990015A CN112148505A CN 112148505 A CN112148505 A CN 112148505A CN 202010990015 A CN202010990015 A CN 202010990015A CN 112148505 A CN112148505 A CN 112148505A
Authority
CN
China
Prior art keywords
task
data
fragment
execution
message queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010990015.2A
Other languages
English (en)
Inventor
王伟
贾晶晶
王贝贝
孙春龙
丛琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JD Digital Technology Holdings Co Ltd
Original Assignee
JD Digital Technology Holdings Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JD Digital Technology Holdings Co Ltd filed Critical JD Digital Technology Holdings Co Ltd
Priority to CN202010990015.2A priority Critical patent/CN112148505A/zh
Publication of CN112148505A publication Critical patent/CN112148505A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种数据跑批***、方法、电子设备和存储介质,应用于数据处理技术领域,其中,***包括:调度中心集群,用于在跑批任务被触发后,从存储层获取跑批任务对应的任务数据,将任务数据拆分为多个任务分片,并将任务分片保存至消息队列;消息队列,用于存放任务分片;工作节点集群包括至少一个工作节点,各工作节点用于拉取消息队列中的任务分片,并调用预设的业务接口执行任务分片。解决现有技术中,大批量任务执行时采用单线程执行,导致任务执行速度较慢,任务执行时间较长、效率低;并且,若节点发生故障,会影响该节点下所有任务的执行,该节点上所执行的任务也会全部失败,造成了***资源浪费的问题。

Description

数据跑批***、方法、电子设备和存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据跑批***、方法、电子设备和存储介质。
背景技术
目前,涉及大批量数据处理时,主要采用单机部署处理的方式。随着业务的发展,数据规模的增大,单机部署的跑批方案存在以下问题:
大批量任务执行时采用单线程执行,导致任务执行速度较慢,任务执行时间较长、效率低;并且,若节点发生故障,会影响该节点下所有任务的执行,该节点上所执行的任务也会全部失败,造成了***资源的浪费。
发明内容
本申请提供了一种数据跑批***、方法、电子设备和存储介质,用以解决现有技术中,大批量任务执行时采用单线程执行,导致任务执行速度较慢,任务执行时间较长、效率低;并且,若节点发生故障,会影响该节点下所有任务的执行,该节点上所执行的任务也会全部失败,造成了***资源浪费的问题。
第一方面,本申请实施例提供了一种数据跑批***,包括:
存储层、调度中心集群、消息队列和工作节点集群;
所述调度中心集群,用于在跑批任务被触发后,从所述存储层获取所述跑批任务对应的任务数据,将所述任务数据拆分为多个任务分片,并将所述任务分片保存至所述消息队列;
所述消息队列,用于存放所述任务分片;
所述工作节点集群包括至少一个工作节点,各所述工作节点用于拉取所述消息队列中的所述任务分片,并调用预设的业务接口执行所述任务分片。
可选的,所述工作节点,还用于:
在所述调用预设的业务接口执行所述任务分片之前,检测所述任务分片的执行是否超时或中断;
若是,终止对所述任务分片的执行。
可选的,所述工作节点,还用于:
终止对所述任务分片的执行之后,记录所述任务分片的执行状态数据,并将所述执行状态数据保存至所述存储层。
可选的,所述存储层包括第一存储器和第二存储器,
所述第一存储器用于存储所述任务数据;
所述第二存储器用于存储所述执行状态数据。
可选的,所述执行状态数据包括执行失败信息和执行成功信息;
所述调度中心集群,还用于从所述存储层获取重试任务分片,并将所述重试任务分片重新发送至所述消息队列,所述重试任务分片为所述执行失败信息对应的任务分片;
所述工作节点,还用于从所述消息队列中,拉取所述重试任务分片,并调用所述预设的业务接口执行所述重试任务分片。
可选的,所述任务数据包括所述任务数据的主键信息;
所述工作节点,用于根据所述主键信息,判断所述重试任务分片中的任务数据是否需要重试,得到判断结果;
若所述判断结果为否,调用所述预设的业务接口执行所述主键信息对应的任务数据;
若所述判断结果为是,放弃调用所述预设的业务接口。
可选的,所述工作节点,还用于:在所述任务数据包括所述任务数据的主键信息,所述调用所述预设的业务接口执行所述任务分片之前,根据所述主键信息校验所述任务分片中的所述任务数据是否重复,若是,调用所述预设的业务接口执行所述任务分片中重复的任务数据中的任意一个。
可选的,所述调度中心集群,还用于获取所述存储层存储的所述执行状态数据;
根据所述执行状态数据判断是否触发任务告警;
若是,终止执行所述跑批任务或生成告警信息。
可选的,所述工作节点,还用于:在所述调用预设的业务接口执行所述任务分片之前,获取接口限流工具,若未获取到所述接口限流工具,每间隔预设时间段重新获取所述接口限流工具,直至获取到所述接口限流工具;若获取到所述接口限流工具,执行所述调用预设的业务接口执行所述任务分片的步骤。
第二方面,本申请实施例提供了一种数据跑批方法,包括:
检测到有跑批任务被触发后,从存储层获取所述跑批任务对应的任务数据;
通过调度中心集群将所述跑批任务拆分为多个任务分片;
将所述任务分片保存至消息队列;
通过工作节点集群中至少一个工作节点拉取所述消息队列中的所述任务分片,并调用预设的业务接口执行所述任务分片。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第二方面所述的数据跑批方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第二方面所述的数据跑批方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该数据跑批***,在跑批任务被触发后,通过调度中心集群从存储层获取跑批任务对应的任务数据,将任务数据拆分为多个任务分片,并将任务分片保存至消息队列,然后由工作节点集群中的工作节点,拉取消息队列中的任务分片,并调用预设的业务接口执行任务分片。如此,将跑批任务拆分为多个任务分片,并由多个工作节点执行各任务分片,使得任务同步执行,取代现有技术中的任务单点执行的方式,大大加快了任务跑批的进度,提高了任务的执行效率;另外,即使在其中一个节点发生故障,任务分片还可以通过其他工作节点执行,不会发生任务执行由于某一节点故障而导致整个任务失败的情况,提高了***资源的利用率,避免了资源的浪费。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的数据跑批***的结构图;
图2为本申请另一实施例提供的数据跑批***的结构图;
图3为本申请一实施例提供的数据跑批方法的流程图;
图4为本申请一实施例提供的电子设备的结构图。
附图标记:
存储层-1、第一存储器-11、第二存储器-12、调度中心集群-2、第一调度主机-21、第二调度主机-22、消息队列-3、第一子消息队列-31、第二子消息队列-32、工作节点集群-4、第一工作节点-41、第二工作节点-42。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请一实施例中提供了一种数据跑批***,该***可以应用于任意一种形式的电子设备中,如终端和服务器中。如图1所示,该数据跑批***,包括:存储层1、调度中心集群2、消息队列3和工作节点集群4。其中:
存储层1,用于存储任务数据。
一些实施例中,存储层1可以但不限于包括文件管理***、数据库、搜索引擎(Elastic search,ES)、远程字典服务(Remote Dictionary Server,Redis)。
调度中心集群2,用于在跑批任务被触发后,从存储层1获取跑批任务对应的任务数据,将任务数据拆分为多个任务分片,并将任务分片保存至消息队列3。
一些实施例中,调度中心集群2在跑批任务被触发后,在存储层1中获取相应的任务数据,根据预设任务分片的大小,将任务数据进行拆分,得到多个任务分片,并将任务分片保存至消息队列3。通过将一个“大任务(跑批任务)”拆分为多个“小任务(任务分片)”,将各“小任务”通过工作节点集群4执行,使得任务同步执行,提高了任务的执行效率。
其中,跑批任务的触发可以但不限于通过定时自动触发或由策略人员根据需求手动触发。其中,手动触发可以通过该数据跑批***提供的任务配置及操作界面实现。
将任务数据拆分为多个任务分片,具体可以为基于预设的任务配置信息,从存储层1中获取跑批任务对应的任务数据,并将任务数据拆分为多个子任务数据,将子任务数据作为任务分片。其中,任务配置信息包括跑批任务中任务数据的大小和任务分片的大小。
其中,跑批任务是指策略人员对批量的用户数据(用户数据存储在存储层1),通过相应的业务接口完成相应的操作的过程,例如:校验某一批用户是否实名,对某一批用户进行调额等。
消息队列3,用于存放任务分片。
一些实施例中,消息队列3为MQ(Message Queue)队列,MQ队列采用“先进先出”的数据结构,对于应用解耦、异步消息、流量削锋等问题,可以实现高性能、高可用、可伸缩和最终一致性架构。
工作节点集群4包括至少一个工作节点,各工作节点用于拉取消息队列3中的任务分片,并调用预设的业务接口执行任务分片。
一些实施例中,工作节点集群4通过设置多个工作节点,各工作节点均可以从消息队列3中拉取任务分片,从而使多个任务分片同时执行,大大加快了任务跑批的进度,提高了跑批效率。
本申请实施例中,在跑批任务被触发后,通过调度中心集群从存储层获取跑批任务对应的任务数据,将任务数据拆分为多个任务分片,并将任务分片保存至消息队列,然后由工作节点集群中的工作节点,拉取消息队列中的任务分片,并调用预设的业务接口执行任务分片。如此,将跑批任务拆分为多个任务分片,并由多个工作节点执行各任务分片,使得任务同步执行,取代现有技术中的任务单点执行的方式,大大加快了任务跑批的进度,提高了任务的执行效率;另外,即使在其中一个节点发生故障,任务分片还可以通过其他工作节点执行,不会发生任务执行由于某一节点故障而导致整个任务失败的情况,提高了***资源的利用率,避免了资源的浪费。
本申请另一实施例中提供了一种数据跑批***,如图2所示,该数据跑批***,包括:存储层1、调度中心集群2、消息队列3和工作节点集群4。其中:
存储层1包括第一存储器11和第二存储器12,第一存储器11用于存储任务数据,第二存储器12用于存储执行状态数据。
具体的,第一存储器11可以但不限于包括文件管理***、MySQL数据库、搜索引擎(Elastic search,ES)中的任意一个或多个。第二存储器12可以但不限于为远程字典服务(Remote Dictionary Server,Redis)。
其中,ES是一个分布式、高扩展、高实时的搜索与数据分析引擎,它能很方便的使大量数据具有搜索、分析和探索的能力。
Redis支持各种不同方式的排序,为了保证效率,数据都是缓存在内存中,Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
调度中心集群2中包括至少两个调度主机。以两个调度主机为例,第一调度主机21用于获取跑批任务对应的任务数据(记为:正常任务分片);第二调度主机22用于获取执行失败的任务分片(记为:重试任务分片)对应的任务数据。可以理解的是,调度主机为3个以上时,第一调度主机21和第二调度主机22的数量可以为1个或多个。
其中,调度主机可以但不限于为电脑或服务器等电子设备。
消息队列3,用于存放任务分片。其中,消息队列3包括至少两个子消息队列,其中,第一子消息队列31用于保存第一调度主机21发送的正常任务分片的任务数据,第二子消息队列32用于保存第二调度主机22发送的重试任务分片的任务数据。
其中,消息队列3可以但不限于为MQ(Message Queue)队列,第一子消息队列31可以根据实际情况设置为1个或多个,在第一子消息队列31为多个时,可以将其根据任务分片的优先级的数量进行设置。例如,任务分片的优先级包括高、中、低三个优先级,则第一子消息队列31可以设置为3个。需要说明的是,任务分片的优先级继承跑批任务的优先级,跑批任务的优先级可以由策略人员根据实际情况进行设置。
工作节点集群4包括两种类型的工作节点,即第一工作节点41和第二工作节点42,其中,第一工作节点41用于执行正常任务分片的任务数据,第二工作节点42用于执行重试任务分片的任务数据。为了跑批任务的快速高效的执行,可以将各类型的工作节点设置为多个。例如,第一工作节点41可以但不限于设置为4个,第二工作节点42可以但不限于设置为2个。
其中,工作节点用于在MQ队列中拉取任务数据,但能拉取的最大分片任务数是有限制的,通过这种限制可以实现任务分片在不同工作节点被执行。其中,工作节点能同时最大处理任务数目配置可以但不限于为20,即工作节点从MQ队列中,最多只能获取20个任务分片,直到该工作节点中有一个或多个任务分片被执行完成,才可以继续从MQ队列中获取新的任务分片。
可以理解的是,在执行任务分片之前,需要依据任务分片中主键信息,从存储任务数据的存储层1中查询出任务数据的完整数据,进而调用预设的业务接口执行任务分片。
在一个具体实施例中,跑批任务通过作业调度框架(quartz)来实现跑批任务的自动或手动触发。跑批任务被触发后,调度中心集群2从存储层1获取跑批任务对应的任务数据,根据预设任务分片的大小,将任务数据进行拆分,得到多个任务分片,并根据任务分片的优先级将其保存至对应的MQ队列的子消息队列中。工作节点集群4中的各工作节点从相应的子消息队列中拉取任务分片,并通过调用预设的业务接口执行任务分片。可以理解的是,工作节点将分片任务执行状态数据记录在Redis中,调度中心集群便可以通过线程监控获取到Redis中的执行状态数据,调度中心集群也可以将执行状态数据存储到MySQL数据库中,以便于***或策略人员监控。
其中,任务状态数据包括分片任务中执行成功的任务数据及数量、执行失败的任务数据及数量和各任务数据的执行时间。分片任务包括任务数据和该任务数据的主键信息,其中主键信息是表示任务数据唯一性的参数,并作为任务数据索引的信息,例如,任务数据中用户的身份证号码。
一些实施例中,为避免任务分片被人为中断,工作节点在调用预设的业务接口执行任务分片之前,还需要检测任务分片的执行是否超时或中断,若是,终止对任务分片的执行,并将该任务分片的执行状态数据记为执行失败;若否,查询任务配置信息和分片任务数据。
具体的,在对任务分片中各任务数据执行时,若其中的某一任务数据中断或超时,将该任务数据和任务分片的任务状态数据均记为执行失败,将该任务状态数据发送至Redis中进行记录。
其中,分片数据查询是由工作节点依据任务分片中主键数据,从存储任务数据的数据库的表中或ES索引中,查询出任务完整的数据。任务配置信息包括:任务名称、任务分片大小、任务分片的主键信息、数据存储地(数据库/ES)、执行时间、业务接口、取数条件、预警规则等。分片任务数据包括:任务分片中各任务数据的主键信息,分片状态数据包括:执行时间、失败数、成功数。
可以理解的是,在对任务分片进行标记时,可以对任务分片的主键信息进行标记,以对各任务分片进行区分。
一些实施例中,工作节点在查询任务分片未中断或超时后,开始执行该任务分片中的任务数据,在调用预设的业务接口执行任务数据之前,工作节点还需要检测该任务数据是否中断或超时,若是,终止对任务分片的执行,并将该任务数据的执行状态数据记为执行失败;若否,根据主键信息校验任务分片中的任务数据是否重复,若是,调用预设的业务接口执行任务分片中重复的任务数据中的任意一个。
具体的,在对任务分片中各任务数据执行前,若检测到任务数据发生中断或超时,则中断该任务分片的执行,并根据该任务数据的主键信息将其的执行状态数据标记为执行失败;若未检测到任务数据发生中断或超时,基于任务分片中的任务数据的主键信息,判断该任务分片中的任务数据是否重复,若存在重复的任务数据,调用预设的业务接口执行任务分片中重复的任务数据中的任意一个;若不存在重复的任务数据,通过工作节点调用预设的业务接口执行任务分片。如此,避免了任务数据的重复执行,保证了重复的任务数据只执行一次,避免了重复劳动,提高了跑批任务的执行效率。
其中,校验任务数据是否有重复,可以依据Redis单线程的特性,通过lua脚本将set(存储操作)和get(查询操作)变成原子性操作,保证高并发情况下,不会出现误判。
一些实施例中,调度中心集群2通过监控线程统计各任务分片的执行状态数据,确定存储层1中执行状态数据包括执行失败信息时,第二调度主机22获取存储层1中重试任务分片,将重试任务分片重新发送至MQ队列中的第二子消息队列32。其中,重试任务分片为执行失败信息对应的任务分片。
其中,工作节点在执行分片中数据时,会把任务分片中各任务数据的执行状态数据记录在Redis中。在任务分片执行失败时,对调度中心集群2进行反馈,调度中心集群2通过监控线程检查到任务分片中每条任务数据的执行状态数据,若任务分片中存在执行失败信息,则将该任务分片标记为“失败”,并将已失败的任务分片发送到第二消息队列32中。
进一步的,工作节点从第二子消息队列32中,拉取重试任务分片,并调用预设的业务接口执行重试任务分片。通过对执行失败的任务分片再次调用任务接口,可以提高跑批任务中的任务数据执行成功率。
更进一步的,在对重试分片任务再次执行时,工作节点还会根据主键信息,判断重试任务分片中的任务数据的执行结果是否为执行成功,得到判断结果,若判断结果为否,调用预设的业务接口执行主键信息对应的任务数据;若判断结果为是,放弃调用预设的业务接口。
具体的,由于在前次执行时已对该重试任务分片中的任务数据的执行状态进行了标记,因此,对重试任务分片中任务数据的执行时,首先依据任务数据的主键信息,从Redis中查询该任务数据上次执行的任务状态数据,并基于预设的重试状态码,判断该任务数据是否需要重试,如可重试,则工作节点再次调用业务接口,并执行该主键信息对应的任务数据;否则,放弃调用。
一些实施例中,调度中心集群2,还用于获取存储层1存储的执行状态数据,根据执行状态数据判断是否触发任务告警,若是,终止执行跑批任务或生成告警信息。
具体的,在存储层1的第二存储器12中存储有任务分片的执行状态数据,存储层的Redis中记录了跑批任务执行过程中的执行状态数据,调度中心集群2基于线程监控获取Redis中的执行状态数据,判断是否触发任务告警,若超过,则触发告警,终止执行跑批任务,或者,调度中心集群2生成告警信息,以提示策略人员,跑批任务执行失败。
其中,执行状态数据包括执行成功的任务数据的数量和执行失败的任务数据的数量,判断是否触发任务告警具体包括:通过预设的告警规则,判断执行失败的任务数据的数量是否超过预设的告警规则设置的阈值,则认为可以触发任务告警;若未超过阈值,则不触发任务告警。
一些实施例中,工作节点,还用于在调用预设的业务接口执行任务分片之前,获取接口限流工具,若未获取到接口限流工具,每间隔预设时间段重新获取接口限流工具,直至获取到接口限流工具;若获取到接口限流工具,执行调用预设的业务接口执行任务分片的步骤。
由于该***为分布式且高并发的调用业务接口,为了防止把业务***调崩溃和减少失败的调用量,通过设置限流操作,控制分片任务的执行速度。一般的,工作节点使用三方guava限流工具来平滑调用业务接口。具体的,工作节点尝试获取接口限流工具,若未获取到接口限流工具,当前线程等待预设时间段后,继续尝试获取接口限流工具,直到获得为止。在获取到接口限流工具后,调用业务接口执行任务分片。
其中,每个工作节点每秒调用接口次数等于任务每秒调用接口总次数除以工作节点数目,接口限流工具可以但不限于为接口限流令牌,预设时间段可以但不限于为50毫秒。
一些实施例中,在一个任务分片通过工作节点调用预设的业务接口执行完毕后,工作节点还会继续判断是否执行下一任务分片,若是,基于上述相关实施例执行下一任务分片,若否,将该任务分片的任务执行状态数据发送至Redis中记录。
本申请数据跑批***,提供了分布式调度的方式,供风险策略人员和产品人员使用,使其可以不经过开发人员,便能够自助配置任务和任务的告警规则,从而大大缩短一个新任务开发的周期。通过调度中心集群2,将大任务按照任务配置信息,自动拆分成多个小任务,小任务通过MQ队列,被分发到不同工作节点同时执行,任务执行时间成倍的减少。任务执行过程中,通过存储层的Redis记录了跑批任务包含的任务数据的主键信息,使得工作节点能够快速校验任务分片中包含的原始数据是否有重复,并保证重复的数据只执行一次。另外,工作节点中任务分片重试执行时,依据任务数据的主键信息,能够快速定位到该任务分片中执行失败的任务数据,并依据预设的重试状态码,对执行失败的任务数据,进行自动的重试或不重试。数据跑批过程更加的自动、快捷,提高了任务的执行效率,并且,即使在其中一个节点发生故障,任务分片还可以通过其他工作节点执行,不会发生任务执行由于某一节点故障而导致整个任务失败的情况,提高了***资源的利用率,避免了资源的浪费。
基于同一构思,本申请实施例中提供了一种数据跑批方法,该方法的具体实施可参见***实施例部分的描述,重复之处不再赘述,如图3所示,该方法包括:
步骤301、检测到有跑批任务被触发后,从存储层获取跑批任务对应的任务数据。
步骤302、通过调度中心集群将跑批任务拆分为多个任务分片。
步骤303、将任务分片保存至消息队列。
步骤304、通过工作节点集群中至少一个工作节点拉取消息队列中的任务分片,并调用预设的业务接口执行任务分片。
本申请实施例中,通过调度中心集群将跑批任务拆分为多个任务分片,并由多个工作节点执行各任务分片,使得任务同步执行,取代现有技术中的任务单点执行的方式,大大加快了任务跑批的进度,提高了任务的执行效率;另外,即使在其中一个节点发生故障,任务分片还可以通过其他工作节点执行,不会发生任务执行由于某一节点故障而导致整个任务失败的情况,提高了***资源的利用率,避免了资源的浪费。
基于同一构思,本申请实施例中提供了一种电子设备,如图4所示,该电子设备主要包括:处理器401、通信接口402、存储器403和通信总线404,其中,处理器401、通信接口402和存储器403通过通信总线404完成相互间的通信。其中,存储器403中存储有可被至处理器401执行的程序,处理器401执行存储器403中存储的程序,实现如下步骤:
检测到有跑批任务被触发后,从存储层获取跑批任务对应的任务数据;
通过调度中心集群将跑批任务拆分为多个任务分片;
将任务分片保存至消息队列;
通过工作节点集群中至少一个工作节点拉取消息队列中的任务分片,并调用预设的业务接口执行任务分片。
上述电子设备中提到的通信总线404可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线404可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口402用于上述电子设备与其他设备之间的通信。
存储器403可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器401的存储装置。
上述的处理器401可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的数据跑批***。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种数据跑批***,其特征在于,包括:存储层、调度中心集群、消息队列和工作节点集群;
所述调度中心集群,用于在跑批任务被触发后,从所述存储层获取所述跑批任务对应的任务数据,将所述任务数据拆分为多个任务分片,并将所述任务分片保存至所述消息队列;
所述消息队列,用于存放所述任务分片;
所述工作节点集群包括至少一个工作节点,各所述工作节点用于拉取所述消息队列中的所述任务分片,并调用预设的业务接口执行所述任务分片。
2.根据权利要求1所述的数据跑批***,其特征在于,所述工作节点,还用于:
在所述调用预设的业务接口执行所述任务分片之前,检测所述任务分片的执行是否超时或中断;
若是,终止对所述任务分片的执行。
3.根据权利要求2所述的数据跑批***,其特征在于,所述工作节点,还用于:
终止对所述任务分片的执行之后,记录所述任务分片的执行状态数据,并将所述执行状态数据保存至所述存储层。
4.根据权利要求3所述的数据跑批***,其特征在于,所述存储层包括第一存储器和第二存储器;
所述第一存储器用于存储所述任务数据;
所述第二存储器用于存储所述执行状态数据。
5.根据权利要求3或4所述的数据跑批***,其特征在于,所述执行状态数据包括执行失败信息和执行成功信息;
所述调度中心集群,还用于从所述存储层获取重试任务分片,并将所述重试任务分片重新发送至所述消息队列,所述重试任务分片为所述执行失败信息对应的任务分片;
所述工作节点,还用于从所述消息队列中,拉取所述重试任务分片,并调用所述预设的业务接口执行所述重试任务分片。
6.根据权利要求5所述的数据跑批***,其特征在于,所述任务数据包括所述任务数据的主键信息;
所述工作节点,用于根据所述主键信息,判断所述重试任务分片中的任务数据是否需要重试,得到判断结果;
若所述判断结果为否,调用所述预设的业务接口执行所述主键信息对应的任务数据;
若所述判断结果为是,放弃调用所述预设的业务接口。
7.根据权利要求1所述的数据跑批***,其特征在于,所述工作节点,还用于:在所述任务数据包括所述任务数据的主键信息,所述调用所述预设的业务接口执行所述任务分片之前,根据所述主键信息校验所述任务分片中的所述任务数据是否重复,若是,调用所述预设的业务接口执行所述任务分片中重复的任务数据中的任意一个。
8.根据权利要求3所述的数据跑批***,其特征在于,所述调度中心集群,还用于获取所述存储层存储的所述执行状态数据;
根据所述执行状态数据判断是否触发任务告警;
若是,终止执行所述跑批任务或生成告警信息。
9.根据权利要求1所述的数据跑批***,其特征在于,所述工作节点,还用于:在所述调用预设的业务接口执行所述任务分片之前,获取接口限流工具,若未获取到所述接口限流工具,每间隔预设时间段重新获取所述接口限流工具,直至获取到所述接口限流工具;若获取到所述接口限流工具,执行所述调用预设的业务接口执行所述任务分片的步骤。
10.一种数据跑批方法,其特征在于,包括:
检测到有跑批任务被触发后,从存储层获取所述跑批任务对应的任务数据;
通过调度中心集群将所述跑批任务拆分为多个任务分片;
将所述任务分片保存至消息队列;
通过工作节点集群中至少一个工作节点拉取所述消息队列中的所述任务分片,并调用预设的业务接口执行所述任务分片。
11.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求10所述的数据跑批方法。
12.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求10所述的数据跑批方法。
CN202010990015.2A 2020-09-18 2020-09-18 数据跑批***、方法、电子设备和存储介质 Pending CN112148505A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010990015.2A CN112148505A (zh) 2020-09-18 2020-09-18 数据跑批***、方法、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010990015.2A CN112148505A (zh) 2020-09-18 2020-09-18 数据跑批***、方法、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN112148505A true CN112148505A (zh) 2020-12-29

Family

ID=73893236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010990015.2A Pending CN112148505A (zh) 2020-09-18 2020-09-18 数据跑批***、方法、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN112148505A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112819600A (zh) * 2021-02-25 2021-05-18 深圳前海微众银行股份有限公司 定时任务的执行方法、装置、设备及计算机存储介质
CN113176967A (zh) * 2021-04-29 2021-07-27 北京奇艺世纪科技有限公司 数据的处理方法及装置、电子设备和计算机可读存储介质
CN113179331A (zh) * 2021-06-11 2021-07-27 苏州大学 面向移动边缘计算的分布式专用保护业务调度方法
CN113485812A (zh) * 2021-07-23 2021-10-08 重庆富民银行股份有限公司 基于大数据量任务的分区并行处理方法及***
CN113835859A (zh) * 2021-09-24 2021-12-24 成都质数斯达克科技有限公司 一种任务调度方法、装置、设备及可读存储介质
CN114240109A (zh) * 2021-12-06 2022-03-25 中电金信软件有限公司 一种跨区域处理跑批任务的方法、装置及***
CN117251508A (zh) * 2023-09-22 2023-12-19 湖南长银五八消费金融股份有限公司 一种借据批量入账方法、装置、设备及存储介质
CN117421111A (zh) * 2023-10-16 2024-01-19 广州今之港教育咨询有限公司 一种消息任务的批处理方法、***、设备及介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484886A (zh) * 2016-10-17 2017-03-08 金蝶软件(中国)有限公司 一种数据采集的方法及其相关设备
US9672274B1 (en) * 2012-06-28 2017-06-06 Amazon Technologies, Inc. Scalable message aggregation
CN107977275A (zh) * 2017-12-05 2018-05-01 腾讯科技(深圳)有限公司 基于消息队列的任务处理方法及相关设备
CN108228326A (zh) * 2017-12-29 2018-06-29 深圳乐信软件技术有限公司 批量任务处理方法和分布式***
US20180212857A1 (en) * 2017-01-26 2018-07-26 International Business Machines Corporation Proactive channel agent
CN108762931A (zh) * 2018-05-31 2018-11-06 康键信息技术(深圳)有限公司 基于分布式调度***的任务调度方法、服务器及存储介质
US20180375783A1 (en) * 2017-06-27 2018-12-27 Atlassian Pty Ltd Retry handling in messaging queues
CN110362401A (zh) * 2019-06-20 2019-10-22 深圳壹账通智能科技有限公司 数据跑批方法、装置、存储介质及集群中的成员主机
CN111160873A (zh) * 2019-12-31 2020-05-15 中国银行股份有限公司 基于分布式架构的跑批处理装置及方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9672274B1 (en) * 2012-06-28 2017-06-06 Amazon Technologies, Inc. Scalable message aggregation
CN106484886A (zh) * 2016-10-17 2017-03-08 金蝶软件(中国)有限公司 一种数据采集的方法及其相关设备
US20180212857A1 (en) * 2017-01-26 2018-07-26 International Business Machines Corporation Proactive channel agent
US20180375783A1 (en) * 2017-06-27 2018-12-27 Atlassian Pty Ltd Retry handling in messaging queues
CN107977275A (zh) * 2017-12-05 2018-05-01 腾讯科技(深圳)有限公司 基于消息队列的任务处理方法及相关设备
CN108228326A (zh) * 2017-12-29 2018-06-29 深圳乐信软件技术有限公司 批量任务处理方法和分布式***
CN108762931A (zh) * 2018-05-31 2018-11-06 康键信息技术(深圳)有限公司 基于分布式调度***的任务调度方法、服务器及存储介质
CN110362401A (zh) * 2019-06-20 2019-10-22 深圳壹账通智能科技有限公司 数据跑批方法、装置、存储介质及集群中的成员主机
CN111160873A (zh) * 2019-12-31 2020-05-15 中国银行股份有限公司 基于分布式架构的跑批处理装置及方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112819600A (zh) * 2021-02-25 2021-05-18 深圳前海微众银行股份有限公司 定时任务的执行方法、装置、设备及计算机存储介质
CN112819600B (zh) * 2021-02-25 2024-06-07 深圳前海微众银行股份有限公司 定时任务的执行方法、装置、设备及计算机存储介质
CN113176967A (zh) * 2021-04-29 2021-07-27 北京奇艺世纪科技有限公司 数据的处理方法及装置、电子设备和计算机可读存储介质
CN113176967B (zh) * 2021-04-29 2023-08-15 北京奇艺世纪科技有限公司 数据的处理方法及装置、电子设备和计算机可读存储介质
CN113179331A (zh) * 2021-06-11 2021-07-27 苏州大学 面向移动边缘计算的分布式专用保护业务调度方法
CN113179331B (zh) * 2021-06-11 2022-02-11 苏州大学 面向移动边缘计算的分布式专用保护业务调度方法
CN113485812A (zh) * 2021-07-23 2021-10-08 重庆富民银行股份有限公司 基于大数据量任务的分区并行处理方法及***
CN113485812B (zh) * 2021-07-23 2023-12-12 重庆富民银行股份有限公司 基于大数据量任务的分区并行处理方法及***
CN113835859B (zh) * 2021-09-24 2023-12-26 成都质数斯达克科技有限公司 一种任务调度方法、装置、设备及可读存储介质
CN113835859A (zh) * 2021-09-24 2021-12-24 成都质数斯达克科技有限公司 一种任务调度方法、装置、设备及可读存储介质
CN114240109A (zh) * 2021-12-06 2022-03-25 中电金信软件有限公司 一种跨区域处理跑批任务的方法、装置及***
CN117251508A (zh) * 2023-09-22 2023-12-19 湖南长银五八消费金融股份有限公司 一种借据批量入账方法、装置、设备及存储介质
CN117421111A (zh) * 2023-10-16 2024-01-19 广州今之港教育咨询有限公司 一种消息任务的批处理方法、***、设备及介质

Similar Documents

Publication Publication Date Title
CN112148505A (zh) 数据跑批***、方法、电子设备和存储介质
US8660995B2 (en) Flexible event data content management for relevant event and alert analysis within a distributed processing system
US9344381B2 (en) Event management in a distributed processing system
US8730816B2 (en) Dynamic administration of event pools for relevant event and alert analysis during event storms
US9246865B2 (en) Prioritized alert delivery in a distributed processing system
US9419650B2 (en) Flexible event data content management for relevant event and alert analysis within a distributed processing system
US8499203B2 (en) Configurable alert delivery in a distributed processing system
US8689050B2 (en) Restarting event and alert analysis after a shutdown in a distributed processing system
US9201756B2 (en) Administering event pools for relevant event analysis in a distributed processing system
CN110365762B (zh) 服务处理方法、装置、设备及存储介质
US20140040673A1 (en) Administering Incident Pools For Incident Analysis
JPH10501907A (ja) ネットワーク内でプログラムを監視し、制御する方法および装置
US20230029198A1 (en) Scheduling complex jobs in a distributed network
US8103905B2 (en) Detecting and recovering from process failures
CN109726151B (zh) 用于管理输入输出栈的方法、设备和介质
CN107426012B (zh) 一种基于超融合架构的故障恢复方法及其装置
CN115729727A (zh) 故障修复方法、装置、设备及介质
US20110302192A1 (en) Systems and methods for first data capture through generic message monitoring
CN115580522A (zh) 一种容器云平台运行状态的监控方法及装置
US20180123866A1 (en) Method and apparatus for determining event level of monitoring result
CN106484536B (zh) 一种io调度方法、装置和设备
US11687269B2 (en) Determining data copy resources
US11941432B2 (en) Processing system, processing method, higher-level system, lower-level system, higher-level program, and lower-level program
CN117707740A (zh) 一种分布式大数据任务调度方法及计算机设备
CN111858047A (zh) 文件交互方法、装置及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Jingdong Technology Holding Co.,Ltd.

Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant before: Jingdong Digital Technology Holding Co., Ltd