CN111538604B - 分布式任务处理*** - Google Patents
分布式任务处理*** Download PDFInfo
- Publication number
- CN111538604B CN111538604B CN202010322658.XA CN202010322658A CN111538604B CN 111538604 B CN111538604 B CN 111538604B CN 202010322658 A CN202010322658 A CN 202010322658A CN 111538604 B CN111538604 B CN 111538604B
- Authority
- CN
- China
- Prior art keywords
- task
- subsystem
- configuration information
- message
- execution instruction
- 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
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本公开实施例公开了一种分布式任务处理***。该***包括:任务配置子***包含至少两个任务配置设备,每个任务配置设备用于接收任务配置信息,并将任务配置信息发送至任务解析子***;任务解析子***用于解析各任务配置信息中的同一个任务配置信息,确定任务周期和任务执行指令,并依据任务周期设置定时器,以及在定时器被触发时,将任务执行指令写入任务配置信息对应的消息队列;下游服务子***包含至少两个下游服务处理设备,下游服务处理设备用于依据消息队列中的任务执行指令处理任务配置信息对应的定时任务。通过上述技术方案,实现了分布式***中定时任务的合理配置,提高了分布式***稳定性。
Description
技术领域
本公开实施例涉及计算机技术,尤其涉及一种分布式任务处理***。
背景技术
随着互联网技术发展,诸如支付***、电商***、网络购票***等均采用分布式***来提供相应服务,并且这些分布式***中都会存在一些定时任务,如支付***中的每天定点清算、电商***中的整点抢购以及网络购票***中定时回收未支付订单的售票等。
参见图1,目前分布式***中的定时任务处理方式为:分布式***的任务处理总控单机101通过标准输入设备接收用户输入的定时任务对应的crontab命令,并将其存放于“crontab”文件中;之后,该任务处理总控单机101解析“crontab”文件中的定时任务信息,并通过分布式***的推送机制,将该定时任务信息分发给该分布式***中的某一个下游服务器102,以便该下游服务器102处理并执行该定时任务。
但是,上述分布式***中定时任务的处理方式存在如下问题:定时任务的配置和解析均在任务处理总控单机中实现,如果该总控单机故障,则会导致整个分布式***的定时任务处理中断。即任务处理总控单机的不稳定性会导致整个分布式***中定时任务处理流程瘫痪,进而影响整个分布式***的稳定性。
发明内容
本公开提供一种分布式任务处理***,以实现分布式***中定时任务的合理配置,提高定时任务处理的稳定性,进而提高分布式***稳定性。
本公开实施例提供了一种分布式任务处理***,该***包括:任务配置子***、任务解析子***和下游服务子***,其中,
所述任务配置子***包含至少两个任务配置设备,每个所述任务配置设备用于接收任务配置信息,并将所述任务配置信息发送至任务解析子***;
所述任务解析子***用于解析各所述任务配置信息中的同一个所述任务配置信息,确定任务周期和任务执行指令,并依据所述任务周期设置定时器,以及在所述定时器被触发时,将所述任务执行指令写入所述任务配置信息对应的消息队列;
所述下游服务子***包含至少两个下游服务处理设备,所述下游服务处理设备用于依据所述消息队列中的所述任务执行指令处理所述任务配置信息对应的定时任务。
本公开实施例通过将分布式***中的定时任务的配置和解析分别拆分至任务配置子***和任务解析子***,解决了因任务处理总控单机故障而导致的定时任务的配置和解析均失败的问题,一定程度上提高了分布式***中处理定时任务的稳定性。通过将任务配置子***设置为分布式,即任务配置子***中至少包含两个任务配置设备,实现了定时任务配置的备份式处理,确保了定时任务的成功配置,进一步提升了分布式***中定时任务处理的稳定性。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1是现有技术中的分布式***中定时任务处理的***结构示意图;
图2是本公开实施例一中的一种分布式任务处理***的结构示意图;
图3是本公开实施例二中的一种分布式任务处理***的结构示意图;
图4是本公开实施例三中的一种分布式任务处理***的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
实施例一
参见图2,本实施例提供了一种分布式任务处理***,该***包括:任务配置子***210、任务解析子***220和下游服务子***230,其中,
所述任务配置子***210包含至少两个任务配置设备211,每个所述任务配置设备211用于接收任务配置信息,并将所述任务配置信息发送至任务解析子***220;
所述任务解析子***220用于解析各所述任务配置信息中的同一个所述任务配置信息,确定任务周期和任务执行指令,并依据所述任务周期设置定时器,以及在所述定时器被触发时,将所述任务执行指令写入所述任务配置信息对应的消息队列;
所述下游服务子***230包含至少两个下游服务处理设备231,所述下游服务处理设备231用于依据所述消息队列中的所述任务执行指令处理所述任务配置信息对应的定时任务。
其中,任务配置信息是指用于配置定时任务的信息,其至少包含任务执行的时间间隔和任务执行指令。当该分布式任务处理***中存在有多个任务解析子***时,该任务配置信息中应当包含解析该任务配置信息的任务解析子***的标识。任务配置信息可以是一个定时任务的配置信息,也可以是多个定时任务的配置信息。任务配置信息可以是人为设置配置文件,并将该配置文件输入任务配置子***;也可以是通过人机交互接口实时输入,不再经过配置文件,而是直接交由任务配置子***进行任务配置处理。任务周期是指任务执行的时间间隔。消息队列是用于存放任务执行指令的队列。分布式任务处理***中消息队列的数量和名称由定时任务的数量和任务内容确定,例如有10个定时任务,那么就会存在10个消息队列。
具体地,分布式任务处理***的任务处理流程为:任务配置子***210中的每个任务配置设备211均接收相同的任务配置信息。之后,每个任务配置设备211均会将该任务配置信息推送至任务解析子***220。当***中存在多个任务解析子***220时,每个任务配置设备211都会初步解析该任务配置信息,以获取其中的任务解析子***的标识。之后,每个任务配置设备211会根据该任务解析子***的标识,将该任务配置信息推送至该标识对应的任务解析子***220中。此时,任务解析子***220中便会存在多个相同的任务配置信息,任务配置信息的数量与任务配置设备211的数量一致。
所述任务解析子***220接收到多个相同的任务配置信息之后,会针对其中的一个任务配置信息进行解析,避免任务配置信息的重复解析。针对任务配置信息进行解析后,会获得任务配置信息中的定时任务的任务信息,即任务周期和任务执行指令。如果有多个定时任务的任务信息,那么就会解析出多组任务周期和任务执行指令。后续针对每个定时任务的处理过程均相同,即根据任务周期设置定时器,该定时器用于控制定时任务的定时执行。当定时任务的时间周期到达时,定时器会被触发,此时任务解析子***220会将该定时任务对应的任务执行指令写入该定时任务对应的消息队列。而消息队列中的任务执行指令会被即时消费掉,即任务执行指令会被即时下发至下游服务子***230以执行该定时任务。所以,定时任务的定时执行在于定时将该定时任务对应的任务执行指令写入相应的消息队列。
当任务解析子***220下发消息队列中的任务执行指令之后,所述下游服务子***230中的某一个下游服务处理设备231会接收到该任务执行指令,并据其进行定时任务的执行。至此,完成了定时任务的配置、解析和执行。需要说明的是,下游服务子***230中由哪个下游服务处理设备231接收并处理任务执行指令,可以根据分布式***的负载均衡策略来确定。
示例性地,在上述***的基础上,该分布式任务处理***还包括:任务配置信息输入设备,用于接收用户输入的所述任务配置信息,并基于分布式***的推送机制和探活机制,将所述任务配置信息发送至所述任务配置子***。具体实施时,用户可以通过任务配置信息输入设备(如人机交互页面)来实时输入任务配置信息,而任务配置信息输入设备则基于分布式***的推送机制和探活机制,实时地将接收到的任务配置信息推送至任务配置子***210中的各任务配置设备211。这样就可以省略修改配置文件及更新任务配置子***210中的配置文件的过程,避免了任务配置过程中新增任务执行指令复杂的问题,而是采用自动push方式,如果定时任务有变动,则通过任务配置信息输入设备和任务配置子***,使得分布式任务处理***自动推动所有服务。
示例性地,所述任务配置子***210还包含至少两个配置备用设备,所述配置备用设备用于在所述任务配置设备211故障时,接收任务配置信息,并将所述任务配置信息发送至任务解析子***220。为了进一步提升分布式任务处理***的稳定性,本公开实施例中将任务配置子***210设置为多主多从的分布式子***。这里的主是指作为现役服务的任务配置设备211,从是指作为备用服务的配置备用设备。配置备用设备只有在分布式***的探活机制探测出任务配置设备211故障时,才会临时充当新的任务配置设备,以确保任务配置子***210中有足够的设备进行任务配置。配置备用设备的数量需要大于或等于2,这样能够确保任务配置子***210中至少有2台设备进行任务配置。
本实施例的分布式任务处理***,通过将分布式***中的定时任务的配置和解析分别拆分至任务配置子***和任务解析子***,解决了因任务处理总控单机故障而导致的定时任务的配置和解析均失败的问题,一定程度上提高了分布式***中处理定时任务的稳定性。通过将任务配置子***设置为分布式,即任务配置子***中至少包含两个任务配置设备,实现了定时任务配置的备份式处理,确保了定时任务的成功配置,进一步提升了分布式***中定时任务处理的稳定性。
实施例二
本实施例在上述实施例一的基础上,对“任务解析子***”进行了进一步优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图3,本实施例提供的分布式任务处理***包括:
任务配置信息输入设备240,用于接收用户输入的所述任务配置信息,并基于分布式***的推送机制和探活机制,将所述任务配置信息发送至所述任务配置子***210;
所述任务配置子***210包含至少两个任务配置设备211和至少两个配置备用设备212,其中,每个所述任务配置设备211用于接收任务配置信息,并将所述任务配置信息发送至任务解析子***220;所述配置备用设备212用于在所述任务配置设备211故障时,接收任务配置信息,并将所述任务配置信息发送至所述任务解析子***220;
所述任务解析子***220包含至少两个任务解析设备221,每个所述任务解析设备221用于解析各所述任务配置信息中的同一个任务配置信息,确定任务周期和任务执行指令,并依据所述任务周期设置定时器,以及在所述定时器被触发时,将所述任务执行指令写入所述任务配置信息对应的消息队列;
所述下游服务子***230包含至少两个下游服务处理设备231,所述下游服务处理设备231用于依据所述消息队列中的所述任务执行指令处理所述任务配置信息对应的定时任务。
本实施例中的任务解析子***220同样被设置为分布式子***,其中至少包含两个任务解析设备221。每个任务解析设备221的功能相同,都是接收任务配置子***210发送的多个任务配置信息,而后处理其中的同一个任务配置信息。如果该同一个任务配置信息中只有一个定时任务的任务信息,那么就由最早解析该任务配置信息的任务解析设备221来进行该任务信息的解析,以获得该定时任务的任务周期和任务执行指令,之后,由该任务解析设备221设置定时器,以及在定时器被触发时,将任务执行指令写入该定时任务对应的消息队列。如果该同一个任务配置信息中含有多个定时任务的任务信息,那么这些任务信息会由多个任务解析设备221来解析,但是需要确保一个任务信息只被一个任务解析设备221解析及处理,解析和处理的过程同上,从而避免任务信息的重复解析。这样,就可以确保多个任务配置信息中的任务信息在任务解析子***220中只被解析一遍,进而确保下发至下游服务子***230中的任务执行指令不重复。
示例性地,所述任务解析子***220还用于:记录各所述任务配置信息中被解析的任务配置信息,作为所述同一个任务配置信息,并记录所述同一个任务配置信息中每个任务信息的解析状态及相应的任务解析设备,以使一个所述任务信息被一个所述任务解析设备解析。为了确保任务解析子***220中各任务解析设备221能够有序且不重复地解析任务配置信息,本实施例中在任务解析子***中设置了全局变量,专门记录任务配置信息及其内部的任务信息被解析及处理的详细信息。当任务解析子***220接收到多个任务配置信息后,最早被解析的任务配置信息的相关标识信息会被记录在全局变量中,该最早被解析的任务配置信息便作为上述的同一个任务配置信息,而其他剩余的任务配置信息则作为备份存储,而不被解析。当同一个任务配置信息开始被解析后,各个任务解析设备221会从其中读取任务信息,此时全局变量需要记录每条任务信息被哪个任务解析设备221读取,并且记录其解析状态(如未解析、解析中及解析完毕等)。当一个任务信息被一个任务解析设备221读取并解析时,其他任务解析设备221将不再处理该任务信息,如此避免任务信息的重复解析。
示例性地,所述任务解析子***220还用于:当所述任务执行指令写入所述消息队列失败时,将所述任务执行指令存入内存,并在满足预设内存读取条件时,读取所述内存中的所述任务执行指令,以将所述任务执行指令重试写入所述消息队列。其中,预设内存读取条件是指预先设定的读取内存中信息的条件,例如可以是预设时间间隔达到,或者任务解析子***中至少有一个任务解析设备当前无解析任务而处于空闲状态等。任务解析设备221在解析同一个任务配置信息中的任务信息时,存在解析失败的情况,如未能将任务执行指令成功写入相应的消息队列。此时,该任务解析设备221需要将该任务执行指令及其相关信息存储至任务解析子***的内存中。这里是将已经解析出来的任务执行指令存储在内存中,而不是标记该任务信息解析失败,这样可以减少该任务信息被再次解析的过程,一定程度上提高任务处理效率。在任务执行指令存入内存之后,任务解析子***220会判断监测是否满足预设内存读取条件。当监测到满足时,任务解析子***220中的一个任务解析设备221会读取内容中的任务执行指令的相关信息,以确定其对应的消息队列,进而将该任务执行指令再次写入该消息队列。这样设置的好处在于,通过增加消息队列的重试写入机制,能够避免定时任务因解析过程失误而被丢弃,进一步提高了分布式任务处理***处理定时任务的稳定性。
本实施例的分布式任务处理***,通过将任务解析子***设置为包含至少两个任务解析设备的分布式子***,能够提高任务配置信息解析的稳定性,进而进一步提高分布式任务处理***的稳定性。
实施例三
本实施例在上述实施例二的基础上,进一步增加了“消息分发子***”。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图4,本实施例提供的分布式任务处理***包括:
任务配置信息输入设备240,用于接收用户输入的所述任务配置信息,并基于分布式***的推送机制和探活机制,将所述任务配置信息发送至所述任务配置子***210;
所述任务配置子***210包含至少两个任务配置设备211和至少两个配置备用设备212,其中,每个所述任务配置设备211用于接收任务配置信息,并将所述任务配置信息发送至任务解析子***220;所述配置备用设备212用于在所述任务配置设备211故障时,接收任务配置信息,并将所述任务配置信息发送至所述任务解析子***220;
所述任务解析子***220包含至少两个任务解析设备221,每个所述任务解析设备221用于解析各所述任务配置信息中的同一个任务配置信息,确定任务周期和任务执行指令,并依据所述任务周期设置定时器,以及在所述定时器被触发时,将所述任务执行指令写入所述任务配置信息对应的消息队列;
消息分发子***250,用于在监测到所述消息队列中有消息时,将所述消息队列中的所述任务执行指令分发至所述下游服务子***230;
所述下游服务子***230包含至少两个下游服务处理设备231,所述下游服务处理设备231用于依据所述消息队列中的所述任务执行指令处理所述任务配置信息对应的定时任务。
本实施例在上述分布式任务处理***的基础上,在任务解析子***220和下游服务子***230之间增加了消息分发子***250。消息分发子***250会对任务解析子***220中的各消息队列进行监测,一旦监测到某个消息队列中有消息写入,即监测到消息队列中写入了任务执行指令时,便即时从该消息队列中读取任务执行指令,并将其推送至下游服务子***230。
示例性地,所述消息分发子***250还用于:将各所述任务执行指令分发至所述下游服务子***230中的同一个所述下游服务设备231。相关技术中,一个任务解析子***220对应有一定数量的下游服务设备231,不同的任务解析子***220对应不同的下游服务设备231。当不同的任务执行指令下发时,其会被不同的任务解析子***220下发,进而下发至不同的下游服务设备231中,这样便会因为任务解析子***220的隔离而无法将其下发至同一个下游服务设备231来处理,会在一定程度上造成下游服务设备的资源浪费。鉴于此,本实施例中增加的消息分发子***250对接所有的下游服务设备231,而不再将其划分隔离。此时,消息分发子***250可以将不同的任务执行指令下发至同一个下游服务设备231中,更加高效地利用下游服务设备的资源,节省下游服务设备的机器数量。
示例性地,所述消息分发子***250包含至少两个消息分发设备251,每个所述消息分发设备用于监测所述消息队列中是否有消息,且最早监测到所述消息队列中有消息的所述消息分发设备将所述消息队列中的所述任务执行指令分发至所述下游服务子***。本实施例中将消息分发子***250也设置为分布式子***,每个消息分发设备251都进行消息队列的监测。当某个消息分发设备251最早监测到某个消息队列中有消息时,该消息分发设备251读取该消息队列中的任务执行指令,并将其下发。而其他的消息分发设备251不会再处理该消息队列中的该任务执行指令。这样设置的好处,不仅可以提升消息分发的稳定性,从而进一步提升分布式任务处理***的稳定性,还能够提升消息分发的效率,从而提高定时任务的执行效率。
示例性地,所述消息分发子***250具体用于:在监测到所述消息队列中有消息,且所述消息的数量大于1时,判断各所述消息是否为重复消息;若是,则保留所述消息队列中的任一所述任务执行指令,并将所述任务执行指令分发至所述下游服务子***。本实施例中的消息分发子***250还具有消息去重的功能。因为任务解析子***220在解析任务配置信息的过程中,可能会出现异常情况,如将任务执行指令写入消息队列时,其标记了写入失败,而后又快速地进行了任务执行指令重试写入消息队列,但是实际情况是任务执行指令首次写入队列时便成功了,此时,该消息队列中存在两条重复的消息。针对这类情况,消息分发子***250在监测消息队列的过程中,还会判断消息队列中的消息数量和消息内容是否正确。如果消息分发子***250监测到消息队列中出现了1条以上的消息,则会判断这些消息是否是重复消息。如果不是,那么会将这些消息按序分发至下游服务子***230。如果是,那么消息分发子***250会进行消息去重,只保留其中的一条任务执行指令,并将该保留的任务执行指令分发至下游服务子***230。这样设置的好处在于,能够避免同一定时任务的重复执行,进一步提高了分布式任务处理***的稳定性。
本实施例的分布式任务处理***,通过在任务解析子***和下游服务子***之间增加消息分发子***,用于在监测到任务解析子***中的消息队列中有消息时,将所述消息队列中的所述任务执行指令分发至所述下游服务子***,实现了任务执行指令的快速分发,提高了定时任务的执行实时性,进一步提高了分布式任务处理***的稳定性。
根据本公开的一个或多个实施例,【示例一】提供了一种分布式任务处理***,包括:任务配置子***、任务解析子***和下游服务子***,其中,
所述任务配置子***包含至少两个任务配置设备,每个所述任务配置设备用于接收任务配置信息,并将所述任务配置信息发送至任务解析子***;
所述任务解析子***用于解析各所述任务配置信息中的同一个任务配置信息,确定任务周期和任务执行指令,并依据所述任务周期设置定时器,以及在所述定时器被触发时,将所述任务执行指令写入所述任务配置信息对应的消息队列;
所述下游服务子***包含至少两个下游服务处理设备,所述下游服务处理设备用于依据所述消息队列中的所述任务执行指令处理所述任务配置信息对应的定时任务。
根据本公开的一个或多个实施例,【示例二】提供了一种分布式任务处理***,可选地,该***还包括:任务配置信息输入设备,用于接收用户输入的所述任务配置信息,并基于分布式***的推送机制和探活机制,将所述任务配置信息发送至所述任务配置子***。
根据本公开的一个或多个实施例,【示例三】提供了一种分布式任务处理***,可选地,该***中的所述任务配置子***还包含至少两个配置备用设备,所述配置备用设备用于在所述任务配置设备故障时,接收任务配置信息,并将所述任务配置信息发送至所述任务解析子***。
根据本公开的一个或多个实施例,【示例四】提供了一种分布式任务处理***,可选地,该***中的所述任务解析子***包含至少两个任务解析设备,每个所述任务解析设备用于解析各所述任务配置信息中的同一个任务配置信息,确定任务周期和任务执行指令,并依据所述任务周期设置定时器,以及在所述定时器被触发时,将所述任务执行指令写入所述任务配置信息对应的消息队列。
根据本公开的一个或多个实施例,【示例五】提供了一种分布式任务处理***,可选地,该***中的所述任务解析子***还用于:
当所述任务执行指令写入所述消息队列失败时,将所述任务执行指令存入内存,并在满足预设内存读取条件时,读取所述内存中的所述任务执行指令,以将所述任务执行指令重试写入所述消息队列。
根据本公开的一个或多个实施例,【示例六】提供了一种分布式任务处理***,可选地,该***中的所述任务解析子***还用于:
记录各所述任务配置信息中被解析的任务配置信息,作为所述同一个任务配置信息,并记录所述同一个任务配置信息中每个任务信息的解析状态及相应的任务解析设备,以使一个所述任务信息被一个所述任务解析设备解析。
根据本公开的一个或多个实施例,【示例七】提供了一种分布式任务处理***,可选地,该***还包括:
消息分发子***,用于在监测到所述消息队列中有消息时,将所述消息队列中的所述任务执行指令分发至所述下游服务子***。
根据本公开的一个或多个实施例,【示例八】提供了一种分布式任务处理***,可选地,该***中的所述消息分发子***包含至少两个消息分发设备,每个所述消息分发设备用于监测所述消息队列中是否有消息,且最早监测到所述消息队列中有消息的所述消息分发设备将所述消息队列中的所述任务执行指令分发至所述下游服务子***。
根据本公开的一个或多个实施例,【示例九】提供了一种分布式任务处理***,可选地,该***中的所述消息分发子***具体用于:
在监测到所述消息队列中有消息,且所述消息的数量大于1时,判断各所述消息是否为重复消息;
若是,则保留所述消息队列中的任一所述任务执行指令,并将所述任务执行指令分发至所述下游服务子***。
根据本公开的一个或多个实施例,【示例十】提供了一种分布式任务处理***,可选地,该***中的所述消息分发子***还用于:
将各所述任务执行指令分发至所述下游服务子***中的同一个所述下游服务设备。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (10)
1.一种分布式任务处理***,其特征在于,包括:任务配置子***、任务解析子***和下游服务子***,其中,
所述任务配置子***包含至少两个任务配置设备,每个所述任务配置设备用于接收任务配置信息,并将所述任务配置信息发送至任务解析子***;
所述任务解析子***用于解析各相同任务配置信息中的其中一个任务配置信息,确定任务周期和任务执行指令,并依据所述任务周期设置定时器,以及在所述定时器被触发时,将所述任务执行指令写入所述任务配置信息对应的消息队列;
所述下游服务子***包含至少两个下游服务处理设备,所述下游服务处理设备用于依据所述消息队列中的所述任务执行指令处理所述任务配置信息对应的定时任务。
2.根据权利要求1所述的***,其特征在于,所述***还包括:
任务配置信息输入设备,用于接收用户输入的所述任务配置信息,并基于分布式***的推送机制和探活机制,将所述任务配置信息发送至所述任务配置子***。
3.根据权利要求1所述的***,其特征在于,所述任务配置子***还包含至少两个配置备用设备,所述配置备用设备用于在所述任务配置设备故障时,接收任务配置信息,并将所述任务配置信息发送至所述任务解析子***。
4.根据权利要求1所述的***,其特征在于,所述任务解析子***包含至少两个任务解析设备,每个所述任务解析设备用于解析各所述任务配置信息中的同一个任务配置信息,确定任务周期和任务执行指令,并依据所述任务周期设置定时器,以及在所述定时器被触发时,将所述任务执行指令写入所述任务配置信息对应的消息队列。
5.根据权利要求1或4所述的***,其特征在于,所述任务解析子***还用于:
当所述任务执行指令写入所述消息队列失败时,将所述任务执行指令存入内存,并在满足预设内存读取条件时,读取所述内存中的所述任务执行指令,以将所述任务执行指令重试写入所述消息队列。
6.根据权利要求4所述的***,其特征在于,所述任务解析子***还用于:
记录各所述任务配置信息中被解析的任务配置信息,作为所述同一个任务配置信息,并记录所述同一个任务配置信息中每个任务信息的解析状态及相应的任务解析设备,以使一个所述任务信息被一个所述任务解析设备解析。
7.根据权利要求1所述的***,其特征在于,所述***还包括:
消息分发子***,用于在监测到所述消息队列中有消息时,将所述消息队列中的所述任务执行指令分发至所述下游服务子***。
8.根据权利要求7所述的***,其特征在于,所述消息分发子***包含至少两个消息分发设备,每个所述消息分发设备用于监测所述消息队列中是否有消息,且最早监测到所述消息队列中有消息的所述消息分发设备将所述消息队列中的所述任务执行指令分发至所述下游服务子***。
9.根据权利要求7或8所述的***,其特征在于,所述消息分发子***具体用于:
在监测到所述消息队列中有消息,且所述消息的数量大于1时,判断各所述消息是否为重复消息;
若是,则保留所述消息队列中的任一所述任务执行指令,并将所述任务执行指令分发至所述下游服务子***。
10.根据权利要求7所述的***,其特征在于,所述消息分发子***还用于:
将各所述任务执行指令分发至所述下游服务子***中的同一个下游服务设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010322658.XA CN111538604B (zh) | 2020-04-22 | 2020-04-22 | 分布式任务处理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010322658.XA CN111538604B (zh) | 2020-04-22 | 2020-04-22 | 分布式任务处理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538604A CN111538604A (zh) | 2020-08-14 |
CN111538604B true CN111538604B (zh) | 2023-03-28 |
Family
ID=71979431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010322658.XA Active CN111538604B (zh) | 2020-04-22 | 2020-04-22 | 分布式任务处理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538604B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113709505A (zh) * | 2020-09-25 | 2021-11-26 | 天翼智慧家庭科技有限公司 | 用于实现媒体资产统一管理和注入的***和方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942101A (zh) * | 2013-01-21 | 2014-07-23 | 中国科学院声学研究所 | 一种基于多核网络处理器的实时任务调度方法及*** |
WO2017024371A1 (pt) * | 2015-08-11 | 2017-02-16 | Uniao Brasileira De Educacao E Assistencia | Método e dispositivo para análise e controle temporal da aplicação crítica de um processador multicore |
CN108076098A (zh) * | 2016-11-16 | 2018-05-25 | 北京京东尚科信息技术有限公司 | 一种业务处理方法及*** |
CN110611707A (zh) * | 2019-09-05 | 2019-12-24 | 深圳前海微众银行股份有限公司 | 一种任务调度的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ITTO20030327A1 (it) * | 2003-05-02 | 2004-11-03 | Telecom Italia Spa | Procedimento e piattaforma per la gestione automatizzata |
-
2020
- 2020-04-22 CN CN202010322658.XA patent/CN111538604B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942101A (zh) * | 2013-01-21 | 2014-07-23 | 中国科学院声学研究所 | 一种基于多核网络处理器的实时任务调度方法及*** |
WO2017024371A1 (pt) * | 2015-08-11 | 2017-02-16 | Uniao Brasileira De Educacao E Assistencia | Método e dispositivo para análise e controle temporal da aplicação crítica de um processador multicore |
CN108076098A (zh) * | 2016-11-16 | 2018-05-25 | 北京京东尚科信息技术有限公司 | 一种业务处理方法及*** |
CN110611707A (zh) * | 2019-09-05 | 2019-12-24 | 深圳前海微众银行股份有限公司 | 一种任务调度的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111538604A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112506915B (zh) | 一种应用数据的管理***以及处理方法、装置和服务器 | |
CN111400011B (zh) | 一种实时任务调度方法、***、设备及可读存储介质 | |
CN108566290A (zh) | 服务配置管理方法、***、存储介质和服务器 | |
CN112860393B (zh) | 一种分布式任务调度方法及*** | |
CN111274052A (zh) | 数据分发方法、服务器及计算机可读存储介质 | |
EP3591485B1 (en) | Method and device for monitoring for equipment failure | |
CN110895488B (zh) | 任务调度方法及装置 | |
CN107577534A (zh) | 一种资源调度方法及装置 | |
CN110727508A (zh) | 一种任务调度***和调度方法 | |
CN110581887A (zh) | 数据处理方法、装置、区块链节点及存储介质 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN111538604B (zh) | 分布式任务处理*** | |
CN112631805A (zh) | 数据处理方法、装置、终端设备及存储介质 | |
CN114020819A (zh) | 一种多***参数同步方法及装置 | |
CN111290942A (zh) | 压力测试方法、装置以及计算机可读介质 | |
CN115617480A (zh) | 一种任务调度方法、装置、***及存储介质 | |
CN115437766A (zh) | 一种任务处理方法和装置 | |
CN115858499A (zh) | 一种数据库分区处理方法、装置、计算机设备和存储介质 | |
CN112527469B (zh) | 一种云计算服务器的容错组合方法 | |
CN109062920B (zh) | 一种用于数据挖掘***的基于内存的数据快速碰撞子*** | |
CN111752911A (zh) | 一种基于Flume的数据传输方法、***、终端及存储介质 | |
CN115964155B (zh) | 芯片内数据处理硬件、芯片内数据处理方法及ai平台 | |
CN117435142B (zh) | Io请求调度方法及存储装置 | |
CN112559243B (zh) | 数据快照方法、装置、电子设备及计算机可读存储介质 | |
JPH0736831A (ja) | ジョブ制御方式 |
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 |