CN110309024B - 数据处理***及其执行数据处理任务的方法 - Google Patents
数据处理***及其执行数据处理任务的方法 Download PDFInfo
- Publication number
- CN110309024B CN110309024B CN201910327896.7A CN201910327896A CN110309024B CN 110309024 B CN110309024 B CN 110309024B CN 201910327896 A CN201910327896 A CN 201910327896A CN 110309024 B CN110309024 B CN 110309024B
- Authority
- CN
- China
- Prior art keywords
- data processing
- target
- queue
- task
- semaphore
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种数据处理***及其执行数据处理任务的方法,属于通信技术领域。其中,***包括调度设备和数据处理平台,方法包括:调度设备获取目标定时任务,生成与目标定时任务对应的目标任务队列集,目标任务队列集中至少包括待执行队列和执行队列;调度设备基于目标定时任务定时生成数据处理任务,并将与数据处理任务对应的信号量添加至待执行队列;当在待执行队列中检测到目标信号量时,数据处理平台将目标信号量转移至执行队列,并执行与目标信号量对应的目标数据处理任务;若目标数据处理任务执行异常,调度设备则将目标信号量重新添加至待执行队列。采用本发明,无需人工干预即能够对执行异常的数据处理任务自动重新执行。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种数据处理***及其执行数据处理任务的方法。
背景技术
数据处理平台可以对业务应用在运行过程中生成的大量应用数据进行分析,业务应用的运维人员可以根据数据处理平台反馈的数据处理结果来快速定位业务应用在运行过程中发生的异常事件,进而对业务应用的运行性能进行调优处理。
现有技术可以通过设置定时任务使数据处理平台周期性地生成数据处理任务。现有数据处理平台通常采用批处理计算的方式对持续产生的应用数据进行处理,具体而言,数据处理平台可以基于定时任务周期性地生成针对应用数据的数据处理任务,然后针对每个数据处理任务创建一个作业进程对业务应用在与每个数据处理任务对应的时间窗口内生成的所有应用数据进行处理。例如,业务应用的运维人员在数据处理平台中设置了“从时刻8:00起,每三分钟检测一次业务应用是否曾经运行异常”的定时任务,当到达时刻8:03时,数据处理平台生成一个数据处理任务并创建对应的作业进程,通过该作业进程分析业务应用从时刻8:00至时刻8:03产生的应用数据来判断业务应用是否曾经运行异常,当到达时刻8:06时,数据处理平台生成另一个数据处理任务并创建对应的作业进程,通过该作业进程分析业务应用从时刻8:03至时刻8:06产生的应用数据来判断业务应用是否曾经运行异常,以此类推。
本专利申请的发明人,通过研究现有的采用批处理计算的数据处理平台执行数据处理任务的过程发现,现有技术至少存在以下问题:采用批处理计算的数据处理平台不能针对执行异常(包括执行超时和执行失败)的数据处理任务自动重新执行,需要运维人员主动查询是否存在执行超时或失败的数据处理任务,并对执行超时或失败的数据处理任务进行人工干预来重新执行,人工维护效率低且成本高,而且,当执行大量的短时间窗口(通常不超过十分钟)对应的数据处理任务时,数据处理平台需要频繁创建和删除大量执行数据处理任务的作业进程,耗费数据处理平台资源以及影响数据处理平台的稳定性。
发明内容
本申请的目的在于提供一种数据处理***及其执行数据处理任务的方法,以解决现有技术存在的部分或全部问题。
为实现上述目的,本申请一方面提供了一种执行数据处理任务的方法,该方法应用于数据处理***,数据处理***包括调度设备和数据处理平台,该方法包括:调度设备获取目标定时任务,生成与目标定时任务对应的目标任务队列集,目标任务队列集中至少包括待执行队列和执行队列;调度设备基于目标定时任务定时生成数据处理任务,并将与数据处理任务对应的信号量添加至待执行队列;当在待执行队列中检测到目标信号量时,数据处理平台将目标信号量转移至执行队列,并执行与目标信号量对应的目标数据处理任务;若目标数据处理任务执行异常,调度设备则将目标信号量重新添加至待执行队列。
进一步的,***还包括管理设备;调度设备获取目标定时任务之前的步骤包括:管理设备基于CRON表达式配置目标定时任务,并将CRON表达式添加至任务配置表,以使调度设备从任务配置表读取目标定时任务。
在一个实施例中,该方法还包括:数据处理平台按照目标信号量在待执行队列中的排列顺序从待执行队列中获取目标信号量;若检测到所述目标数据处理任务的执行优先级的修改请求,所述调度设备修改所述目标信号量在所述待执行队列中的排列顺序,以使所述数据处理平台根据修改后的排列顺序从所述待执行队列中获取所述目标信号量。
在一个实施例中,目标任务队列集中还包括失败队列;若目标数据处理任务执行异常,调度设备则将目标信号量重新添加至待执行队列的步骤包括:若目标数据处理任务执行失败,数据处理平台将目标信号量转移至失败队列;当在失败队列中检测到目标信号量时,调度设备将目标信号量转移至待执行队列。
在一个实施例中,目标任务队列集中还包括超时队列;若目标数据处理任务执行异常,调度设备则将目标信号量重新添加至待执行队列的步骤包括:若目标信号量在执行队列中的存储时间超过预设存储时间,调度设备将目标信号量转移至超时队列;当在超时队列中检测到目标信号量时,调度设备将目标信号量转移至待执行队列。
在一个实施例中,目标任务队列集中还包括归档队列;该方法还包括:数据处理平台在信号量中记录数据处理任务执行成功或执行失败的执行结果,并将记录了执行结果的信号量添加至归档队列;调度设备在信号量中记录数据处理任务执行超时的执行结果,并将记录了执行结果的信号量添加至归档队列。
进一步的,数据处理***还包括归档设备;调度设备或数据处理平台将携带执行结果的信号量添加至归档队列之后的步骤包括:当从归档队列中检测到数据处理任务对应的信号量时,归档设备获取信号量,读取执行结果,并将执行结果存储于外部数据库中的任务执行结果集。
进一步的,数据处理***还包括报警设备;归档设备将执行结果存储于外部数据库中的任务执行结果集之后的步骤包括:当从任务执行结果集中检测到目标数据处理任务的执行结果为执行失败或执行超时的次数大于预设异常次数时,报警设备报警。
在一个实施例中,数据处理平台采用流式计算来执行数据处理任务;该方法还包括:数据处理平台通过与目标定时任务对应的常驻进程按照预设周期检测待执行队列中是否存在信号量。
为实现上述目的,本申请另一方面提供了一种数据处理***,该数据处理***包括调度设备和数据处理平台,其中,调度设备用于获取目标定时任务,生成与目标定时任务对应的目标任务队列集,目标任务队列集中至少包括待执行队列、执行队列和失败队列;调度设备还用于基于目标定时任务定时生成数据处理任务,并将与数据处理任务对应的信号量添加至待执行队列;当在待执行队列中检测到目标信号量时,数据处理平台用于将目标信号量转移至执行队列,并执行与目标信号量对应的目标数据处理任务;若目标数据处理任务执行异常,调度设备还用于将目标信号量重新添加至待执行队列。
进一步的,该***用于实现上述的执行数据处理任务的方法。
由上可见,本发明相较于现有技术,第一,本发明通过调度信号量来调度信号量对应的数据处理任务,通过任务队列集来存储信号量,降低了调度设备与数据处理平台的耦合度,增强了调度设备与数据处理平***立运行的能力。第二,通过任务队列集中的多种队列对数据处理任务的执行状态进行分类,并重新调度执行超时或执行失败的数据处理任务对应的信号量,进而自动重新执行该数据处理任务,避免人工干预。第三,通过归档设备将数据处理任务的执行结果统一持久化存储于外部数据库,便于业务应用的运维人员查阅和分析历史执行结果。第四,通过报警设备定期获取外部数据库中存储的执行结果,可以对执行异常的数据处理任务进行报警。第五,数据处理平台可以采用流式计算通过常驻进程处理数据,无需频繁创建和删除大量执行数据处理任务的作业进程,提升了数据处理***在运行及维护上的稳定性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种执行数据处理任务的方法的流程图;
图2为本发明实施例提供的一种执行成功的数据处理任务对应的信号量的转移流程示意图。
图3为本发明实施例提供的一种执行失败的数据处理任务对应的信号量的转移流程示意图;
图4为本发明实施例提供的一种执行超时的数据处理任务对应的信号量的转移流程示意图
图5为本发明另一实施例提供的一种数据处理***的整体框架示意图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种执行数据处理任务的方法,该方法应用于数据处理***,该方法可以由数据处理***中的调度设备和数据处理平台共同实现。其中,调度设备用于调度数据处理任务,计划每个数据处理任务的执行时间,调度设备可以为每个定时任务生成对应的任务队列集,调度设备还可以根据目标定时任务定时生成数据处理任务以及与每个数据处理任务对应的信号量,并将信号量存储在对应的任务队列集中。需要说明的是,调度设备可以是分布式设备,可以包括多个调度主机,多个调度主机可以启用分布式锁服务,按照预设周期请求获取锁,任意时刻,只能有一个调度主机获取到锁,由获取到锁的调度主机来实现调度设备的功能,其他调度主机用于实现调度设备的故障备份。数据处理平台可以从任务队列集中获取信号量,并执行与获取到的信号量对应的数据处理任务;数据处理平台还可以将执行失败的数据处理任务对应的信号量重新添加至对应的任务队列集,从而使数据处理平台可以重新执行对应的数据处理任务。需要说明的是,数据处理平台中可以包括数据收发设备,数据收发设备用于从其他设备获取用于执行数据处理任务的待处理数据,以及将任务执行结果发送给其他设备。
图1为本发明实施例提供的一种执行数据处理任务的方法的流程图。
S101,调度设备获取目标定时任务,生成与目标定时任务对应的目标任务队列集,目标任务队列集中至少包括待执行队列和执行队列。
本实施例中,业务应用的运维人员在配置目标定时任务时,数据处理***可以根据目标定时任务生成目标定时任务的任务ID。其中,目标定时任务的任务ID为用于标记目标定时任务的全局唯一识别码(例如,自增ID),可以理解,这个数据处理***中,不同定时任务的任务ID不同。数据处理***中的调度设备在获取目标定时任务时,可以同时获取目标定时任务的任务ID。调度设备获取到目标定时任务及目标定时任务的任务ID后,可以生成与目标定时任务对应的目标任务队列集,并通过目标定时任务的任务ID来标记目标任务队列集,从而建立目标定时任务与目标任务队列集的对应关系。需要说明的是,目标任务队列集用于存储数据处理任务对应的信号量,目标任务队列集中至少包括待执行队列和执行队列,其中,信号量存储在待执行队列中,说明该信号量对应的数据处理任务处于等待执行的状态;信号量存储在执行队列中,说明该信号量对应的数据处理任务处于正在执行的状态。
可选的,数据处理***还可以包括管理设备,运维人员可以通过管理设备来配置定时任务。相应的,调度设备获取目标定时任务之前的步骤可以包括:管理设备基于CRON表达式配置目标定时任务,并将CRON表达式添加至任务配置表,以使调度设备从任务配置表读取目标定时任务。
在一个实施例中,管理设备可以具有UI(User Interface,用户界面),便于业务应用的运维人员操作。业务应用的运维人员可以在管理设备的上通过CRON表达式来人工配置目标定时任务,该CRON表达式中记录的配置数据可以包括数据处理任务的数据处理指令以及数据处理任务的生成条件。其中,数据处理任务的生成条件可以包括数据处理任务的首次生成时间、数据处理任务的生成频率等参数。当目标定时任务配置完毕后,管理设备可以将目标定时任务存储于任务配置表,以使调度设备从任务配置表读取目标定时任务。可以理解,调度设备可以持续监听或周期性地从任务配置表读取定时任务。此外,业务应用的运维人员可以通过管理设备来修改任务配置表中已经存在的目标定时任务,调度设备可以在读取到修改后的目标定时任务后,按照修改后的目标定时任务生成数据处理任务。
S102,调度设备基于目标定时任务定时生成数据处理任务,并将与数据处理任务对应的信号量添加至待执行队列。
本实施例中,信号量中记录的数据可以包括任务ID以及数据处理任务的剩余执行次数,可以理解,数据处理任务每执行一次,对应的信号量中记录的数据处理任务的剩余执行次数减一。数据处理***中的调度设备获取到目标定时任务后,可以根据目标定时任务的配置数据,从特定时间起每隔一定时长自动生成数据处理任务,无需人工干预。并且,为了降低数据处理***中的调度设备与数据处理平台的耦合度,在生成每个数据处理任务的同时,调度设备可以生成与数据处理任务对应的信号量,并且通过调度进程将信号量添加至与目标定时任务对应的目标任务队列集中的待执行队列,以使数据处理***中的数据处理平台获取信号量,进而执行信号量对应的数据处理任务。
需要说明的是,目标任务队列集中的各个队列的存储空间可以是预先设置的大小固定的,也可以是能够按照实际需求动态调整大小的,本发明对此不作限制。
S103,当在待执行队列中检测到目标信号量时,数据处理平台将目标信号量转移至执行队列,并执行与目标信号量对应的目标数据处理任务。
本实施例中,由于数据处理平台仅在获取到信号量后才执行信号量对应的数据处理任务,因此,数据处理平台可以每隔一定时间检测目标任务队列集中的待执行队列中是否存在信号量,当在待执行队列中检测到目标信号量时,数据处理平台确定可以执行与目标信号量对应的数据处理任务,此时,数据处理平台将目标信号量转移至执行队列,然后,数据处理平台执行与目标信号量对应的目标数据处理任务。
可选的,业务应用的运维人员可以对数据处理任务的执行优先级进行人工干预,来修改数据处理任务的执行顺序,相应的,本发明提供的方法还可以包括:数据处理平台按照目标信号量在待执行队列中的排列顺序从待执行队列中获取目标信号量;若检测到目标数据处理任务的执行优先级的修改请求,调度设备修改目标信号量在待执行队列中的排列顺序,以使数据处理平台根据修改后的排列顺序从待执行队列中获取目标信号量。
在一个实施例中,数据处理任务的执行优先级越高表现为信号量在待执行队列中的存储位置越靠前,数据处理平台按照各个信号量在待执行队列中的排列顺序依次获取信号量,进而依次执行各个信号量对应的数据处理任务。因此,当需要修改目标数据处理任务的执行优先级时,业务应用的运维人员可以通过调度设备对目标信号量在待执行队列中的存储位置进行修改,之后,数据处理平台可以根据目标信号量的存储位置从待执行队列中获取目标信号量。例如,调度设备检测到目标数据处理任务的执行优先级的修改请求,该修改请求为将目标数据处理任务的执行优先级改为最高,此时,调度设备可以将目标信号量存储于待执行队列的队首。可以理解,若目标信号量存储于待执行队列的队尾,调度设备可以将位于待执行队列的队尾的目标信号量移动至待执行队列的队首;若目标信号量存储于失败队列,调度设备可以将位于失败队列的目标信号量移动至待执行队列的队首,之后,数据处理平台可以首先从待执行队列中获取到目标信号量。
S104,若目标数据处理任务执行异常,调度设备则将目标信号量重新添加至待执行队列。
本实施例中,目标数据处理任务的执行结果可以是执行异常或执行成功,当目标数据处理任务执行异常时,为了重新执行目标数据处理任务,调度设备可以将目标信号量重新添加至待执行队列,以使数据处理平台可以重新获取目标信号量,进而重新执行目标信号量对应的目标数据处理任务。
可选的,为了使数据处理平台自动重新执行发生执行失败的数据处理任务,并且将执行失败的数据处理任务与其他数据处理任务区别开,可以在目标任务队列集中设置失败队列,相应的,步骤S104可以具体包括:若目标数据处理任务执行失败,数据处理平台将目标信号量转移至失败队列;当在失败队列中检测到目标信号量时,调度设备将目标信号量转移至待执行队列。
在一个实施例中,数据处理平台在执行目标数据处理任务的过程中,若目标数据处理任务执行失败,可以先由数据处理平台将目标信号量从执行队列转移至失败队列,之后,调度设备在失败队列中检测到目标信号量后将目标信号量转移至待执行队列。需要说明的是,调度设备可以周期性地检测目标定时任务的失败队列中是否存在信号量,当在失败队列中检测到一个或多个信号量时,调度设备将失败队列中的信号量按照排列顺序逐个转移至待执行队列。其中,导致数据处理任务执行失败的原因可以是外部因素,例如,执行目标数据处理任务需要数据处理平台从***外部数据库获取待处理数据,目标数据处理任务在执行过程中由于外部数据库接口临时故障,数据处理平台访问外部数据库失败,导致目标数据处理任务执行失败。
可选的,为了使数据处理平台自动重新执行发生执行超时的数据处理任务,并且将执行超时的数据处理任务与其他数据处理任务区别开,相应的,步骤S104可以具体包括:若目标信号量在执行队列中的存储时间超过预设存储时间,调度设备将目标信号量转移至超时队列;当在超时队列中检测到数据处理任务对应的信号量时,调度设备将信号量转移至待执行队列。
在一个实施例中,信号量的预设存储时间为该信号量可以在执行队列中存储的最长时间,代表执行该信号量对应的数据处理任务允许消耗的时长。如果调度设备监测到目标信号量在执行队列中的存储时间超过预设存储时间,表示数据处理平台在执行目标数据处理任务时消耗的时长超过了允许消耗的时长,此时,目标数据处理任务的执行结果为执行超时,数据处理平台结束执行目标数据处理任务。然后,调度设备将目标信号量转移至超时队列,之后,调度设备在超时队列中检测到目标信号量后将目标信号量转移至待执行队列。需要说明的是,调度设备可以周期性地检测目标定时任务的超时队列中是否存在信号量,当在超时队列中检测到一个或多个信号量时,调度设备将超时队列中的信号量按照排列顺序逐个转移至待执行队列。
值得一提的是,调度设备可以通过超时检查器来判断目标信号量在执行队列中的存储时间是否超过预设存储时间。例如,当目标信号量开始在执行队列中存储时,超时检查进程可以设置一个超时时间为目标信号量的预设存储时间的定时器,当该定时器计时到达超时时间,目标信号量还未从执行队列中移出,说明目标信号量在执行队列中的存储时间超过预设存储时间。
在一个实施例中,为了防止待执行队列中的剩余存储空间不足导致信号量存储失败,可以在待执行队列前设置未分配队列作为缓冲区。其中,数据处理平台将信号量由执行队列转移至失败队列,以及调度设备将信号量由执行队列转移至超时队列的情况均适用于本实施例。调度设备将失败队列及超时队列中的信号量添加至待执行队列之前,可以先将信号量添加到目标任务队列集中的未分配队列。这样,当信号量在一定时间内突然增多时,例如在某段时间内目标定时任务对应的数据处理任务频繁执行异常,未分配队列不仅需要存储新生成的信号量还要存储执行异常的数据处理任务对应的信号量,此时,需要存储的信号量数量超过待执行队列可容纳的数量,待执行队列无力存储的信号量暂存于未分配队列,调度***可以周期性地检测未分配队列中是否存在信号量,并检测待执行队列的剩余存储空间是否足够存储一个或多个信号量,当未分配队列中存在信号量,并且待执行队列的剩余存储空间足够存储一个或多个信号量时,调度设备可以将未分配队列中的信号量按照排列顺序逐个转移至待执行队列。
可选的,目标任务队列集还可以包括归档队列,用于存放数据数据处理任务的执行结果,相应的,本发明提供的方法还可以包括:数据处理平台在信号量中记录数据处理任务执行成功或执行失败的执行结果,并将记录了执行结果的信号量添加至归档队列;调度设备在信号量中记录数据处理任务执行超时的执行结果,并将记录了执行结果的信号量添加至归档队列。
在一个实施例中,由于执行失败及执行成功这两种执行结果可以由数据处理平台在数据处理任务执行结束时直接确定,而执行超时这种执行结果是由调度设备确定的,具体的,调度设备可以通过超时检查进程检测信号量在执行队列中存储的时间来确定对应的数据处理任务是否执行超时。此处,为了便于后续获取执行结果,可以将三种执行结果统一存放在归档队列中。因此,数据处理平台可以在数据处理任务对应的信号量中记录数据处理任务执行失败或执行成功的执行结果,并将记录了执行结果的信号量添加至归档队列。调度设备可以在数据处理任务对应的信号量中记录数据处理任务执行超时的执行结果,并将记录了执行结果的信号量添加至归档队列。
其中,针对数据处理任务执行成功、执行失败以及执行超时的情况,数据处理任务对应的信号量的转移流程可以分别参见图2-图4,其中,图2-图4中的序号表示信号量的移动顺序。
在一个实施例中,为了防止待执行队列中的剩余存储空间不足导致信号量存储失败,可以在待执行队列前设置未分配队列作为缓冲区。其中,数据处理平台将信号量由执行队列转移至失败队列,以及调度设备将信号量由执行队列转移至超时队列的情况均适用于本实施例。调度设备将失败队列及超时队列中的信号量添加至待执行队列之前,可以先将信号量添加到目标任务队列集中的未分配队列。这样,当信号量在一定时间内突然增多时,例如在某段时间内目标定时任务对应的数据处理任务频繁执行异常,未分配队列不仅需要存储新生成的信号量还要存储执行异常的数据处理任务对应的信号量,此时,需要存储的信号量数量超过待执行队列可容纳的数量,待执行队列无力存储的信号量暂存于未分配队列,调度***可以周期性地检测未分配队列中是否存在信号量,并检测待执行队列的剩余存储空间是否足够存储一个或多个信号量,当未分配队列中存在信号量,并且待执行队列的剩余存储空间足够存储一个或多个信号量时,调度设备可以将未分配队列中的信号量按照排列顺序逐个转移至待执行队列。
可选的,为了将所有数据处理任务的执行结果进行持久化存储,数据处理***还可以包括归档设备,相应的,调度设备或数据处理平台将携带执行结果的信号量添加至归档队列之后的步骤可以包括:当从归档队列中检测到数据处理任务对应的信号量时,归档设备获取信号量,读取执行结果,并将执行结果存储于外部数据库中的任务执行结果集。
在一个实施例中,归档设备可以周期性地检测归档队列中是否存在信号量,当从归档队列中检测到数据处理任务对应的信号量时,归档设备可以获取归档队列中存储的所有信号量,读取每个信号量对应的数据处理任务的执行结果,并将执行结果存储于外部数据库中的任务执行结果集,任务执行结果集可以作为执行结果页面展示以及后续数据处理任务执行异常报警的数据源。其中,外部数据库可以是分布式存储设备。需要说明的是,归档设备可以是分布式设备,可以包括多个归档主机,多个归档主机可以启用分布式锁服务,按照预设周期请求获取锁,任意时刻,只能有一个归档主机获取到锁,由获取到锁的归档主机来实现归档设备的功能,其他归档主机用于实现归档设备的故障备份。
可选的,为了在数据处理任务执行异常时可以自动报警,数据处理***还可以包括报警设备。相应的,归档设备将执行结果存储于外部数据库中的任务执行结果集之后的步骤可以包括:当从任务执行结果集中检测到目标数据处理任务的执行结果为执行失败及执行超时的次数大于预设异常次数时,报警设备报警。
在一个实施例中,数据处理***的整体框架示意图可参见图5。为了能及时对重新执行多次但仍然执行异常的数据处理任务进行报警,可以在数据处理***中的报警设备上设置预设异常次数,当每个数据处理任务发生执行异常的次数超过预设异常次数时,报警设备自动报警来通知运维人员。例如,报警设备可以按照一定的统计周期定期访问外部数据库的任务执行结果集,计算在每个周期内目标数据处理任务的执行结果为执行失败及执行超时的次数,当计算结果大于预设异常次数时,报警设备报警。需要说明的是,报警设备还可以针对不同定时任务设置不同的报警触发条件,例如,根据定时任务的重要性设置定时任务对应的每个数据处理任务的预设异常次数,针对越重要的定时任务,预设异常次数的值可以越小。
可选的,为了保证处理短时间窗口内的应用数据的数据处理任务可以及时执行完毕,在上述的任何一个实施例中,数据处理平台均可以采用流式计算来执行数据处理任务。相应的,本发明提供的方法还可以包括:数据处理平台通过与目标定时任务对应的常驻进程按照预设周期检测待执行队列中是否存在信号量。
在一个实施例中,业务应用的运维人员在配置目标定时任务时,可以在数据处理平台创建并开启与目标定时任务对应的常驻进程,并通过目标定时任务的任务ID建立目标定时任务与常驻进程的对应关系。然后,数据处理平台可以通过与该任务ID对应的常驻进程,按照预设周期检测目标任务队列集中的待执行队列中是否存在信号量。
需要说明的是,数据处理平台可以使用任意能够实现流式计算的计算框架,本发明对此不作限制。例如,数据处理平台可以使用storm计算框架,通过常驻进程中的spout线程来定期检测目标任务队列集中的待执行队列中是否存在信号量以及获取目标信号量和对应的待处理数据,并通过常驻进程中的bolt线程来执行目标信号量对应的目标数据处理任务,具体的数据处理过程本发明在此不作赘述。值得一提的是,每个常驻进程可以包括多个spout线程和多个bolt线程,目标定时任务对应的常驻进程可以同时执行目标定时任务对应的多个数据处理任务。
由上可见,本发明相较于现有技术,第一,本发明通过调度信号量来调度信号量对应的数据处理任务,通过任务队列集来存储信号量,降低了调度设备与数据处理平台的耦合度,增强了调度设备与数据处理平***立运行的能力。第二,通过任务队列集中的多种队列对数据处理任务的执行状态进行分类,并重新调度执行超时或执行失败的数据处理任务对应的信号量,进而自动重新执行该数据处理任务,避免人工干预。第三,通过归档设备将数据处理任务的执行结果统一持久化存储于外部数据库,便于业务应用的运维人员查阅和分析历史执行结果。第四,通过报警设备定期获取外部数据库中存储的执行结果,可以对执行异常的数据处理任务进行报警。第五,数据处理平台可以采用流式计算通过常驻进程处理数据,无需频繁创建和删除大量执行数据处理任务的作业进程,提升了数据处理***在运行及维护上的稳定性。
基于相同的技术构思,本发明实施例还提供了一种数据处理***,该数据处理***包括调度设备和数据处理平台,其中,调度设备用于获取目标定时任务,生成与目标定时任务对应的目标任务队列集,所述目标任务队列集中至少包括待执行队列、执行队列和失败队列;
所述调度设备还用于基于所述目标定时任务定时生成数据处理任务,并将与所述数据处理任务对应的信号量添加至所述待执行队列;
当在所述待执行队列中检测到目标信号量时,所述数据处理平台用于将所述目标信号量转移至所述执行队列,并执行与所述目标信号量对应的目标数据处理任务;
若所述目标数据处理任务执行异常,所述调度设备还用于将所述目标信号量重新添加至所述待执行队列。可选的,数据处理***还可以包括管理设备;调度设备获取目标定时任务之前,管理设备用于基于CRON表达式配置目标定时任务,并将CRON表达式添加至任务配置表,以使调度设备从任务配置表读取目标定时任务。
可选的,数据处理平台还用于按照所述目标信号量在所述待执行队列中的排列顺序从所述待执行队列中获取所述目标信号量;若检测到所述目标信号量的排列顺序的修改请求,所述调度设备还用于根据所述修改请求修改所述目标信号量的排列顺序,以使所述数据处理平台根据修改后的排列顺序从所述待执行队列中获取所述目标信号量。
可选的,所述目标任务队列集中还可以包括失败队列;若所述目标数据处理任务执行失败,所述数据处理平台具体用于将所述目标信号量转移至所述失败队列;当在所述失败队列中检测到所述目标信号量时,所述调度设备用于将所述目标信号量转移至所述待执行队列。
可选的,所述目标任务队列集中还可以包括超时队列;若所述目标信号量在所述执行队列中的存储时间超过预设存储时间,所述调度设备具体用于将所述目标信号量转移至所述超时队列;当在所述超时队列中检测到所述目标信号量时,所述调度设备用于将所述目标信号量转移至所述待执行队列。
可选的,所述目标任务队列集中还可以包括归档队列;数据处理平台还用于在信号量中记录数据处理任务执行成功或执行失败的执行结果,并将记录了执行结果的信号量添加至归档队列;调度设备还用于在信号量中记录数据处理任务执行超时的执行结果,并将记录了执行结果的信号量添加至归档队列。
进一步的,所述***还可以包括归档设备;当从所述归档队列中检测到所述数据处理任务对应的信号量时,所述归档设备用于获取所述信号量,读取所述执行结果,并将所述执行结果存储于外部数据库中的任务执行结果集。
进一步的,所述***还可以包括报警设备;当从所述任务执行结果集中检测到目标数据处理任务的执行结果为执行失败及执行超时的次数大于预设的异常次数时,所述报警设备报警。
可选的,所述数据处理平台采用流式计算来执行所述数据处理任务;所述数据处理平台可以用于通过与所述目标定时任务对应的常驻进程按照预设周期检测所述待执行队列中是否存在所述信号量。
本实施例提供的调度设备和数据处理平台共同实现上述的执行数据处理任务的方法。其实现原理和所要达到的技术效果上文中已有论述,在此不再赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该执行数据处理任务软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括存储若干指令用以使得一台计算机执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种执行数据处理任务的方法,其特征在于,所述方法应用于数据处理***,所述***包括调度设备和数据处理平台,所述方法包括:
所述调度设备获取目标定时任务,生成与所述目标定时任务对应的目标任务队列集,所述目标任务队列集中至少包括待执行队列和执行队列;
所述调度设备基于所述目标定时任务定时生成数据处理任务,并将与所述数据处理任务对应的信号量添加至所述待执行队列;
当在所述待执行队列中检测到目标信号量时,所述数据处理平台将所述目标信号量转移至所述执行队列,并执行与所述目标信号量对应的目标数据处理任务;
若所述目标数据处理任务执行异常,所述调度设备则将所述目标信号量重新添加至所述待执行队列。
2.如权利要求1所述的方法,其特征在于,所述***还包括管理设备;
所述调度设备获取目标定时任务之前的步骤包括:
所述管理设备基于CRON表达式配置所述目标定时任务,并将所述CRON表达式添加至任务配置表,以使所述调度设备从所述任务配置表读取所述目标定时任务。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述数据处理平台按照所述目标信号量在所述待执行队列的排列顺序从所述待执行队列中获取所述目标信号量;
若检测到所述目标数据处理任务的执行优先级的修改请求,所述调度设备修改所述目标信号量在所述待执行队列中的排列顺序,以使所述数据处理平台根据修改后的排列顺序从所述待执行队列中获取所述目标信号量。
4.如权利要求1所述的方法,其特征在于,所述目标任务队列集中还包括失败队列;
所述若所述目标数据处理任务执行异常,所述调度设备则将所述目标信号量重新添加至所述待执行队列的步骤包括:
若所述目标数据处理任务执行失败,所述数据处理平台将所述目标信号量转移至所述失败队列;
当在所述失败队列中检测到所述目标信号量时,所述调度设备将所述目标信号量转移至所述待执行队列。
5.如权利要求1所述的方法,其特征在于,所述目标任务队列集中还包括超时队列;
所述若所述目标数据处理任务执行异常,所述调度设备则将所述目标信号量重新添加至所述待执行队列的步骤包括:
若所述目标信号量在所述执行队列中的存储时间超过预设存储时间,所述调度设备将所述目标信号量转移至所述超时队列;
当在所述超时队列中检测到所述目标信号量时,所述调度设备将所述目标信号量转移至所述待执行队列。
6.如权利要求1所述的方法,其特征在于,所述目标任务队列集中还包括归档队列;
所述方法还包括:
所述数据处理平台在所述信号量中记录所述数据处理任务执行成功或执行失败的执行结果,并将记录了执行结果的所述信号量添加至所述归档队列;
所述调度设备在所述信号量中记录所述数据处理任务执行超时的执行结果,并将记录了执行结果的所述信号量添加至所述归档队列。
7.如权利要求6所述的方法,其特征在于,所述***还包括归档设备;
所述调度设备或所述数据处理平台将记录了执行结果的所述信号量添加至所述归档队列之后的步骤包括:
当从所述归档队列中检测到所述数据处理任务对应的信号量时,所述归档设备获取所述信号量,读取所述信号量中记录的执行结果,并将所述执行结果存储于外部数据库中的任务执行结果集。
8.如权利要求7所述的方法,其特征在于,所述***还包括报警设备;
所述归档设备将所述执行结果存储于外部数据库中的任务执行结果集之后的步骤包括:
当从所述任务执行结果集中检测到目标数据处理任务的执行结果为执行失败及执行超时的次数大于预设的异常次数时,所述报警设备报警。
9.如权利要求1-8中任一项所述的方法,其特征在于,所述数据处理平台采用流式计算来执行所述数据处理任务;
所述方法还包括:
所述数据处理平台通过与所述目标定时任务对应的常驻进程按照预设周期检测所述待执行队列中是否存在所述信号量。
10.一种数据处理***,其特征在于,所述数据处理***包括调度设备和数据处理平台,其中,
所述调度设备用于获取目标定时任务,生成与所述目标定时任务对应的目标任务队列集,所述目标任务队列集中至少包括待执行队列、执行队列和失败队列;
所述调度设备还用于基于所述目标定时任务定时生成数据处理任务,并将与所述数据处理任务对应的信号量添加至所述待执行队列;
当在所述待执行队列中检测到目标信号量时,所述数据处理平台用于将所述目标信号量转移至所述执行队列,并执行与所述目标信号量对应的目标数据处理任务;
若所述目标数据处理任务执行异常,所述调度设备还用于将所述目标信号量重新添加至所述待执行队列。
11.如权利要求10所述的***,其特征在于,所述***用于实现如权利要求2至8任一项所述的执行数据处理任务的方法。
12.如权利要求10所述的***,其特征在于,所述***用于实现如权利要求9所述的执行数据处理任务的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910327896.7A CN110309024B (zh) | 2019-04-23 | 2019-04-23 | 数据处理***及其执行数据处理任务的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910327896.7A CN110309024B (zh) | 2019-04-23 | 2019-04-23 | 数据处理***及其执行数据处理任务的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110309024A CN110309024A (zh) | 2019-10-08 |
CN110309024B true CN110309024B (zh) | 2023-07-18 |
Family
ID=68074529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910327896.7A Active CN110309024B (zh) | 2019-04-23 | 2019-04-23 | 数据处理***及其执行数据处理任务的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110309024B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888760A (zh) * | 2019-11-26 | 2020-03-17 | 中国工商银行股份有限公司 | 数据恢复方法和装置、以及数据处理方法和装置 |
CN111209112A (zh) * | 2019-12-31 | 2020-05-29 | 杭州迪普科技股份有限公司 | 一种异常处理方法及装置 |
CN111290744B (zh) * | 2020-01-22 | 2023-07-21 | 北京百度网讯科技有限公司 | 流式计算作业处理方法、流式计算***及电子设备 |
CN113672358A (zh) * | 2020-05-15 | 2021-11-19 | 北京沃东天骏信息技术有限公司 | 定时任务处理方法及装置、***、电子设备和存储介质 |
CN111625391B (zh) * | 2020-05-29 | 2023-06-13 | 北京思特奇信息技术股份有限公司 | 一种任务处理方法、***和电子设备 |
CN111562969B (zh) * | 2020-07-15 | 2020-10-20 | 百度在线网络技术(北京)有限公司 | 一种区块链的智能合约实现方法、装置、设备和介质 |
CN111930490B (zh) * | 2020-09-25 | 2021-06-15 | 武汉中科通达高新技术股份有限公司 | 一种流媒体任务管理方法及装置 |
CN112416589A (zh) * | 2020-11-21 | 2021-02-26 | 广州西麦科技股份有限公司 | 一种用于运维平台定时作业错峰执行的方法 |
CN112965799B (zh) * | 2021-03-05 | 2023-08-18 | 北京百度网讯科技有限公司 | 任务状态的提示方法、装置、电子设备和介质 |
CN113873033B (zh) * | 2021-09-27 | 2022-12-13 | 江苏方天电力技术有限公司 | 一种具有容错功能的智能边缘计算网关平台 |
CN113975815B (zh) * | 2021-11-04 | 2022-12-23 | 上海鱼尔网络科技有限公司 | 任务转移方法、***、装置、设备、存储介质 |
CN116501477B (zh) * | 2023-06-28 | 2023-09-15 | 中国电子科技集团公司第十五研究所 | 一种数据自动化处理方法、装置和设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013110816A2 (fr) * | 2012-01-27 | 2013-08-01 | Tymis | Procédé d'utilisation d'une mémoire partagée |
WO2014173339A1 (zh) * | 2013-08-07 | 2014-10-30 | 中兴通讯股份有限公司 | 一种任务调度服务***及方法 |
WO2016112701A1 (zh) * | 2015-01-16 | 2016-07-21 | 华为技术有限公司 | 异构多核可重构计算平台上任务调度的方法和装置 |
CN109634733A (zh) * | 2018-12-13 | 2019-04-16 | 成都四方伟业软件股份有限公司 | 任务调度管理方法、装置及运维管理服务器 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3394416B2 (ja) * | 1997-04-24 | 2003-04-07 | 三菱電機株式会社 | プログラムトレース装置 |
US9772888B2 (en) * | 2013-04-10 | 2017-09-26 | Wind River Systems, Inc. | Semaphore with timeout and lock-free fast path for message passing architectures |
CN106471486B (zh) * | 2014-04-30 | 2019-05-17 | 甲骨文国际公司 | 用于在事务中间件机器环境中支持自适应自调整锁定机制的***和方法 |
JP6462521B2 (ja) * | 2015-07-31 | 2019-01-30 | 株式会社日立超エル・エス・アイ・システムズ | 通常部の故障が***へ伝播することを防止するapi及びその処理部 |
CN106681836B (zh) * | 2016-12-28 | 2021-03-05 | 华为技术有限公司 | 一种信号量的创建方法及装置 |
CN106844151B (zh) * | 2017-01-04 | 2019-11-12 | 南京国电南自电网自动化有限公司 | 一种VxWorks***的网络任务异常检测方法 |
CN106933681B (zh) * | 2017-02-05 | 2019-10-11 | 深圳怡化电脑股份有限公司 | 一种多对象阻塞方法及其*** |
CN108536532B (zh) * | 2018-04-23 | 2021-06-22 | 中国农业银行股份有限公司 | 一种批量任务处理方法及*** |
-
2019
- 2019-04-23 CN CN201910327896.7A patent/CN110309024B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013110816A2 (fr) * | 2012-01-27 | 2013-08-01 | Tymis | Procédé d'utilisation d'une mémoire partagée |
WO2014173339A1 (zh) * | 2013-08-07 | 2014-10-30 | 中兴通讯股份有限公司 | 一种任务调度服务***及方法 |
WO2016112701A1 (zh) * | 2015-01-16 | 2016-07-21 | 华为技术有限公司 | 异构多核可重构计算平台上任务调度的方法和装置 |
CN109634733A (zh) * | 2018-12-13 | 2019-04-16 | 成都四方伟业软件股份有限公司 | 任务调度管理方法、装置及运维管理服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN110309024A (zh) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309024B (zh) | 数据处理***及其执行数据处理任务的方法 | |
US8689050B2 (en) | Restarting event and alert analysis after a shutdown in a distributed processing system | |
US8943366B2 (en) | Administering checkpoints for incident analysis | |
US20130073726A1 (en) | Restarting event and alert analysis after a shutdown in a distributed processing system | |
US9170860B2 (en) | Parallel incident processing | |
US20120304022A1 (en) | Configurable Alert Delivery In A Distributed Processing System | |
US10545807B2 (en) | Method and system for acquiring parameter sets at a preset time interval and matching parameters to obtain a fault scenario type | |
US20150271124A1 (en) | Prioritized alert delivery in a distributed processing system | |
CN111782360A (zh) | 分布式任务调度方法及装置 | |
EP3591485B1 (en) | Method and device for monitoring for equipment failure | |
US20150074472A1 (en) | Checkpointing For Delayed Alert Creation | |
JP2004038516A (ja) | 業務処理システム、運用管理方法及び運用管理を行うためのプログラム | |
CN104601668B (zh) | 基于状态管理的数据推送方法、装置和*** | |
US9361184B2 (en) | Selecting during a system shutdown procedure, a restart incident checkpoint of an incident analyzer in a distributed processing system | |
JP2005011023A (ja) | ジョブスケジューリング方法及びシステム | |
CN112200505B (zh) | 跨业务***的流程监控装置、方法及相应设备和存储介质 | |
CN110659147B (zh) | 一种基于模块自检行为的自修复方法和*** | |
US20150281037A1 (en) | Monitoring omission specifying program, monitoring omission specifying method, and monitoring omission specifying device | |
JP2010176303A (ja) | バッチ処理システムおよびこれに用いる情報端末装置、バッチ処理のリカバリ方法 | |
US20120210176A1 (en) | Method for controlling information processing apparatus and information processing apparatus | |
US8972352B1 (en) | Probe based backup | |
CN105897498A (zh) | 一种监控业务的方法及设备 | |
US8589354B1 (en) | Probe based group selection | |
CN115168137A (zh) | 针对定时任务的监控方法及***、计算机设备及存储介质 | |
CN111538604B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |