CN109308219B - 任务处理方法、装置及分布式计算机系统 - Google Patents

任务处理方法、装置及分布式计算机系统 Download PDF

Info

Publication number
CN109308219B
CN109308219B CN201810966265.5A CN201810966265A CN109308219B CN 109308219 B CN109308219 B CN 109308219B CN 201810966265 A CN201810966265 A CN 201810966265A CN 109308219 B CN109308219 B CN 109308219B
Authority
CN
China
Prior art keywords
task
event
service
processing
tasks
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
Application number
CN201810966265.5A
Other languages
English (en)
Other versions
CN109308219A (zh
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201810966265.5A priority Critical patent/CN109308219B/zh
Publication of CN109308219A publication Critical patent/CN109308219A/zh
Application granted granted Critical
Publication of CN109308219B publication Critical patent/CN109308219B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Abstract

本说明书公开了一种任务处理方法、节点及分布式计算机系统,该方法包括:利用事件处理线程池中的线程并行对监听到的批量即时任务进行过滤处理,并将过滤处理得到的有效即时任务添加至事件队列;利用业务处理线程池中的线程并行处理事件队列中的有效即时任务。

Description

任务处理方法、装置及分布式计算机系统
技术领域
本说明书涉及计算机领域,尤其涉及一种任务处理方法、装置及分布式计算机系统。
背景技术
在各种业务场景中均需要进行业务处理,处理用户侧发起的任务请求。所针对的业务场景不同,任务请求的数据也不相同。在某些业务场景:在同一时刻需要处理用户侧大规模发起的任务请求;在某些业务场景,虽然用户只发起一次请求,但是产生的是需要批量操作的任务请求;在某些业场景,需要定时触发进行业务处理,如每天的0点或未来的某个时刻需要处理一些业务逻辑。
发明内容
本说明书实施例提供一种任务处理方法、装置及分布式计算机系统。
第一方面,本说明书实施例提供一种任务处理方法,包括:
监听批量即时任务,并将监听到的批量即时任务添加至事件处理线程池;
利用所述事件处理线程池中的线程并行对监听到的批量即时任务进行过滤处理,并将过滤处理得到的有效即时任务添加至事件队列;
利用业务处理线程池中的线程并行处理所述事件队列中的有效即时任务。
第二方面,本说明书实施例提供一种任务处理装置,包括任务处理器,所述任务处理器包括:
任务监听器,用于监听批量即时任务,并将监听到的批量即时任务添加至事件处理线程池;
核心处理模块,用于利用所述事件处理线程池中的线程并行对监听到的批量即时任务进行过滤处理,并将过滤处理得到的有效即时任务添加至事件队列,利用业务处理线程池中的线程并行处理所述事件队列中的有效即时任务。
第三方面,本说明书实施例提供一种任务处理节点,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面任一项所述方法的步骤。
第四方面,本说明书实施例提供一种任务处理方法,应用于分布式计算机系统,所述系统包括多个任务处理节点,所述任务处理节点用于执行第一方面中任一项所述的方法。
第五方面,本说明实施例提供一种分布式计算机系统,包括多个任务处理节点,所述任务节点上布置有第二方面中任一项所述的任务处理装置。
本说明书实施例提供的一个或者多个实施例,至少实现了如下技术效果或者优点:
由于利用事件处理线程池中的线程并行对监听到的批量即时任务进行过滤处理,并将过滤处理得到的有效即时任务添加至事件队列;利用业务处理线程池中的线程并行处理事件队列中的有效即时任务,从而避免了无效任务对业务处理线程的占用,并且是多个线程并行对有效即时任务进行处理,故而,基于这两点,使得适用于业务处理实时性要求比较高的场景,进而能够稳定、快速的批量处理即时任务,实现了处理任务的高吞吐量和秒内延时。
附图说明
为了更清楚地说明本说明书实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中任务处理方法的场景图;
图2为本说明书实施例中任务处理方法的流程图;
图3为图1中任务处理节点的结构示意图;
图4为图1中分布式计算系统的结构图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
参考图1所示,图1为本说明书实施例中任务处理方法的场景图。外部节点100和分布式计算机系统200。分布式计算机系统200包括多个通过通信网络连接的任务处理节点201,分布式计算机系统200中的各任务处理节点201可以来自于不同地点和/或具有不同功能和/或拥有不同数据,各个任务处理节点201在统一管理控制下形成分布计算机系统。外部节点100可以为终端设备或者不属于分布式计算机系统200的另一服务器。任务处理节点201中设置有任务处理装置202。各个外部节点100向分布式计算机系统200发起一个以上的业务处理请求,分布式计算机系统200中的各任务处理节点201分布式并行处理基于一个以上的任务请求产生的批量即时任务,从而能够快速、稳定的处理业务处理请求。
具体的,一个业务请求可以产生一个或者多个即时任务。在同一时刻,分布式计算机系统200接收来自外部节点200传递来的一个以上业务请求,基于一个以上的业务请求产生批量即时任务。将批量即时任务分配给分布式计算机系统200中的多个任务处理节点201进行处理。
具体的,参考图3所示,任务处理装置202包括任务接收器203和任务处理器204。具体的,任务接收器203包括:第一消息接口、事件转换器和定时消息中间件TMQ、第一事件数据库。任务处理器204包括:第二消息接口、任务监听器、核心处理模块、业务配置模块和第二事件数据库。任务处理器204还可以包括运维模块。
具体的,核心处理模块包括:事件处理线程池、事件队列和业务处理线程池。任务监听器用于监听批量即时任务,异步接收监听到的批量即时任务并传递给核心处理模块,由核心处理模块并行处理批量即时任务。
第一方面,本说明书实施例提供一种任务处理方法,应用在图1的任一任务处理节点201。下面,参考图2和图3所示,本说明书实施例提供的任务处理方法包括如下步骤:
S202、监听批量即时任务,并将监听到的批量即时任务添加至事件处理线程池。
在具体实施过程中,监听到的批量即时任务来自于多个业务场景或者来自于同一业务场景。具体的,通过任务监听器监听批量即时任务。
在本说明书实施例中,可以由如下情况会产生批量即时任务,分别进行说明:
情况一:在某些业务场景,基于外部节点的一次业务请求会产生多个即时任务,这种业务请求为第一业务请求,则步骤S202中的批量即时任务来自于一个或者多个第一业务请求。
针对情况一,步骤S202的实施过程如下:由第二消息接口触发接收外部节点传来的第一业务处理请求,并基于第一业务处理请求产生批量即时任务;任务监听器监听基于第一业务处理请求产生的批量即时任务。在本实施例中,由任务处理器的第二消息接口直接触发对第一业务处理请求的接收,而不通过任务接收器的第一消息接口进行接收。
情况二:在某些业务场景,在同一时刻接收到来自多个外部节点的第二业务请求,在同一时刻需要处理多个第二业务请求。其中,第二业务请求的任务类型可以为长事件任务、短事件任务、即时事件任务。则步骤S202中的批量即时任务来自于同一个第二业务请求或者多个第二业务请求。
针对情况二,步骤S202的具体实施过程如下:接收M个外部节点传来的M个第二业务处理请求,M为大于1的整数;利用定时消息中间件将M个第二业务处理请求分别转换为对应的定时触发任务;利用定时消息中间件在到达定时触发任务的触发时间时发出该定时触发任务,以使任务监听器监听到批量即时任务。
通过将第二业务处理请求转换为定时触发任务后进行处理,从而保证了任务处理的稳定性。
需要说明的时,在本实施方式中,批量即时任务可以来自于同一业务场景的多个即时任务或者多个不同的业务场景。
具体来讲,定时消息中间件可以为使用TMQ,TMQ是一款分布式定时消息中间件,可以支持超大规模定时触发器。本说明书实施例中的定时触发任务,具体为:预选设置时间或时间表达式,当时间到达预选设置时间或时间表达式的时间点时触发执行的任务。
在一可选的实施方式中,根据第二业务处理请求的任务类型将第二业务处理请求转换为定时触发任务。具体的实施方式可以为:检测第二业务处理请求的任务类型;根据与第二业务处理请求的任务类型对应的转换方式,将第二业务处理请求转换为定时触发任务。
在具体实施过程中,第二业务处理请求中携带有用于判断任务类型的信息。具体来讲,可以根据第二业务处理请求中的时间信息判断第二业务处理请求的任务类型:
在本说明书实施例中,如果第二业务处理请求的时间信息满足针对长事件任务设置的时间条件,则确定第二业务处理请求的任务类型为长事件任务;如果第二业务处理请求的时间信息满足针对短事件任务设置的时间条件,则确定第二业务处理请求的任务类型为长事件任务;如果均不满足,则确定第二业务处理请求的任务类型为即时事件任务;或者:若第二业务处理请求不携带时间信息,则确定第二业务处理请求的任务类型为即时事件任务。
举例来讲,针对长事件任务设置的时间条件,可以为:大于或等于1年,针对短事件任务设置的时间条件,可以为:小于1年且大于1个月。当然,在本说明书实施例中可以根据业务场景的不同进行设置,或者可以根据实际需求进行设置各个任务类型对应的时间条件。
在具体实施过程中,第二业务处理请求的任务类型不同,则将第二业务处理请求转换为定时触发任务的实施过程就相应不同,下面分别进行说明:
一、第二业务请求的任务类型为长事件任务:
针对第二业务处理请求的任务类型为长事件任务,将长事件任务转换为多个新短事件任务;将各个新短事件任务持久化至第一事件数据库;从第一事件数据库中获取任务执行时间点与当前时间点匹配的新短事件任务并将其转换为定时触发任务。
具体的,通过事件转换器件将长事件任务转换为多个新短事件任务。
比如,第二业务处理请求具体为需要2年后处理的请求,则可以转换为每2个月进行处理的10个新短事件任务,或者可以转换为每6个月进行处理的4个新短事件任务。在具体实施过程中,将长事件任务转换成新短事件任务的个数不进行具体限定。
具体的,基于转换得到的各个新短事件任务的执行时间点,从第一事件数据库中获取执行时间点与当前时间点匹配的新短事件任务,并转换为定时触发任务。
举例来讲,针对同一长事件任务转换得到每6个月进行处理的各个新短事件任务,则从写入各个新短事件任至第一事件数据库的时间点开始,在达到6个月时,从第一事件数据库中获取与任务执行时间点为6个月所对应的新短事件任务并转换为定时触发任务;在达到12个月时,从第一事件数据库中获取与执行时间点为12个月所对应的新短事件任务并转换为定时触发任务,以此类推。
在一可选的实施方式中,将从第一事件数据库中获取的新短事件任务投递给定时消息中间件,由定时消息中间件将新短事件任务转换为定时触发任务。
二、针对第二业务处理请求的任务类型为短事件任务,则将短事件任务直接投递给定时消息中间件,由定时消息中间件将短事件任务转换为定时触发任务。
三、针对第二业务处理请求的任务类型为即时事件任务,将即时事件任务直接投递给定时消息中间件,由定时消息中间件将即时事件任务转换为定时触发任务。
需要说明的是,在情况二中由任务接收器的第一消息接口触发接收外部节点传来的第二业务处理请求。
在一可选的实施方式中,任务接收器接收到外部节点传来的第二业务处理请求之后,还包括:预处理第二业务处理请求;根据预处理结果确定是否将第二业务处理请求转换为定时触发任务。
具体的,预处理第二业务处理请求,具体实施方式可以是:提取第二业务处理请求中的业务数据,对提取的业务数据进行预校验,如果对业务数据的预校验结果为有效业务数据,则将第二业务处理请求转换为定时触发任务;否则,不将第二业务处理请求转换为定时触发任务。
在一可选的实施方式中,针对已经接入的各业务场景各自配置有接入配置信息。其中,接入配置信息包括任务过滤规则、业务处理逻辑、任务监控方式以及业务校验方式中的一种以上。因此,在接入新的业务场景之后,配置针对新的业务场景的接入配置信息。具体的,针对新的业务场景配置任务过滤规则、业务处理逻辑、任务监控方式以及业务校验方式中的一种以上。
在具体实施过程中,通过业务配置模块配置针对业务从场景配置接入配置信息。
其中,在一可选的实施方式中,如果针对各业务场景对应配置有业务校验方式。调用针对第二业务处理请求所对应业务场景配置的业务校验方式,对从第二业务处理请求中提取的业务数据进行预校验。具体而言,对提取的业务数据进行预校验,可以是:基于提取的业务数据中的时间数据,判断第二业务处理请求是否为过期的业务处理请求。
S204、利用事件处理线程池中的线程并行对监听到的批量即时任务进行过滤处理,并将过滤处理得到的有效即时任务添加至事件队列。
在步骤S204中,利用事件处理线程池中的线程并行对监听到的批量即时任务进行过滤处理,从而过滤掉批量即时任务中的无效即时任务,而保留批量即时任务中的有效即时任务。
在一可选的实施方式中,通过如下实施方式实现对批量即时任务进行过滤处理:
预先配置有过滤条件,判断批量即时任务中的即时任务是否满足预先配置的过滤条件;将批量即时任务中满足过滤条件的即时任务确定为无效即时任务,不满足过滤条件的即时任务确定为有效即时任务。
预先配置的过滤条件,具体为包括一条以上任务过滤规则,命中一条以上任务过滤规则,则确定为无效即时任务。举例来讲,任务过滤规则可以为:过滤过期即时任务。需要说明的是,针对即时任务设置有结束时间(Deadline),如果当前时刻晚于即时任务的结束时间,则表征该即时任务为过期即时任务。需要说明的是,不同的业务场景下,判断是否为过期即时任务时所使用的任务有效期可以不同。
在本说明书实施例中,并不限制于上述举例的任务过滤规则,不同的业务场景配置有不同的任务过滤规则。在一可选的实施方式,在接入新的业务场景时,针对新的业务场景配置新的任务过滤规则,从而对于接入的不同业务场景均有适配的任务过滤规则。
基于不同的业务场景配置适配的任务过滤规则,则对监听到的批量即时任务进行过滤处理的实施方式可以为:确定批量即时任务中与当前待过滤任务所对应的业务场景;根据与当前待过滤任务所对应的业务场景适配的任务过滤规则,判断当前待过滤任务是否为有效即时任务。
在具体实施过程中,添加至事件队列的有效即时任务数量过多会导致事件队列溢出。为了应对这一问题,在将过滤处理获得的有效即时任务添加至事件队列时如果事件队列溢出,则将有效即时任务持久化至第二事件数据库,以在第二事件数据库中保存为待处理任务;在事件队列中存在剩余空间时,从第二事件数据库中获取待处理任务并添加至事件队列,以提供给业务处理线程池中的线程进行处理。
在一可选的实施方式中,可以是预先配置事件处理线程池和业务处理线程池的线程数、并预先配置事件队列的队列大小。需要说明的是,这种方式针对接入业务场景稳定的情况。
不同业务场景的接入会导致任务量变化。因此,在另一可选的实施方式中,为了应对接入新的业务场景导致任务量变化,事件处理线程池和业务处理线程池的线程数、事件队列的队列大小可以动态配置,从而能够在扩展性上支持水平扩容和业务接入。
具体的,动态配置的实施过程如下:检测是否接入新的业务场景;根据新的业务场景,重新配置事件处理线程池的线程数和业务处理线程池的线程数和事件队列的队列大小。
具体而言,根据当前接入的新的业务场景的流量级别,动态配置事件处理线程池的线程数、业务处理线程池的线程数和事件队列的队列大小。
举例来讲,如:当前接入的新的业务场景的流量级别为100tps,而单个线程的处理能力是100ms,则事件处理线程池的线程数和业务处理线程池中均增加多于或等于10个的线程,而事件队列中增加10个或者更多个任务空间。
通过步骤S204能够避免无效的任务请求进入事件队列。
S206、利用业务处理线程池中的线程并行处理事件队列中的有效即时任务。
具体的,各接入的业务场景特有的业务处理逻辑,需要不同的业务处理逻辑来应对不同的业务场景,因此,在步骤S206中,确定有效即时任务对应的目标业务场景;获取所述目标业务场景的业务处理逻辑;利用业务处理线程池中的线程,基于目标业务场景的业务处理逻辑处理该目标业务场景下的有效即时任务。从而保证对不同业务场景下任务处理的正确性。
通过步骤S202~S206,实现了并行对批量即时任务进行处理,从而达到高吞吐量和秒内延时的处理任务的技术效果,进而快速、稳定的应对业务处理量大且实时性要求比较高的场景,达到高吞吐量和秒内延时。
在一可选的实施方式中,如果针对接入的各业务场景对应配置有接入配置信息。在执行步骤S204和步骤S206之前,查询监听到的批量即时任务的接入配置信息,以确定批量即时任务中各即时任务的任务过滤规则、业务处理逻辑、任务监控方式中的一种以上。
在具体实施过程中,调用与当前接入的业务场景适配的任务监控方式,进行各有效即时任务被执行过程中的任务监控。
具体的,任务监控包括但不限于如下一种以上:对有效即时任务被执行过程的日志监控、以及任务处理器的容量监控。在具体实施过程中,可以通过运维模块进行各有效即时任务被执行过程中的任务监控。
有效即时任务被执行过程的日志监控用于明确有效即时任务被执行的情况信息。比如:执行结果、完成时间等等。对任务处理器的容量监控用于明确事件处理线程池、业务处理线程池的使用状态。具体而言,监控事件处理线程池是否高于第一预设预警水位,以及监控业务处理线程池是否高于第二预设预警水位。如果事件处理线程池高于第一预设预警水位,则发出用于提示在事件处理线程池中新建线程第一报警信息;如果业务处理线程池高于第二预设预警水位,则发出用于提示在业务处理线程池中新建线程的第二报警信息。
从而根据有效即时任务被执行过程的日志监控、对任务处理器的容量监控可以动态调整任务处理器的各个指标数据。
进一步的,在一可选的实施方式中,利用业务处理线程池中的线程并行处理事件队列中的有效即时任务之后,将得到的处理结果持久化至第二事件数据库。
第二方面,基于同一发明构思,本说明书实施例提供一种任务处理装置202,参考图1和图3所示,任务处理装置202包括任务处理器204,任务处理器204包括:
任务监听器,用于监听批量即时任务,并将监听到的批量即时任务添加至事件处理线程池;
核心处理模块,用于利用所述事件处理线程池中的线程并行对监听到的批量即时任务进行过滤处理,并将过滤处理得到的有效即时任务添加至事件队列,利用业务处理线程池中的线程并行处理所述事件队列中的有效即时任务。
所述批量即时任务来自多个业务场景或者同一业务场景。
在一种可选方式中,所述任务处理装置还包括:第二消息接口,用于接收外部节点传来的第一业务处理请求,基于所述第一业务处理请求产生所述批量即时任务;
所述任务监听器,用于监听基于所述第一业务处理请求产生的所述批量即时任务。
在一种可选方式中,所述装置还包括任务接收器203,所述任务接收器203包括:
第一消息接口,用于接收M个外部节点传来的M个第二业务处理请求,M为大于1的整数;
任务转换器,用于将所述M个第二业务处理请求分别转换为对应的定时触发任务;还用于在到达所述定时触发任务的触发时间时发出所述定时触发任务,以使所述任务监听器监听到所述批量即时任务。
在一种可选方式中,所述任务转换器,用于通过如下步骤将所述第二业务处理请求转换定时触发任务:
检测所述第二业务处理请求的任务类型;
根据与所述第二业务处理请求的任务类型对应的转换方式,将所述第二业务处理请求转换为定时触发任务。
在一种可选方式中,所述任务转换器,包括:
事件转换器,用于针对所述第二业务处理请求的任务类型为长事件任务,将所述长事件任务转换为多个新短事件任务,以及将所述新短事件任务持久化至第一事件数据库;
定时消息中间件,用于从所述第一事件数据库中获取任务执行时间点与当前时间点匹配的新短事件任务,并转换为定时触发任务。
在一种可选方式中,所述装置还包括业务配置模块,用于检测是否接入新的业务场景;根据所述新的业务场景,重新配置所述事件处理线程池的线程数和所述业务处理线程池的线程数和所述事件队列的队列大小。
在一种可选方式中,所述业务配置模块,还用于:在所述接入新的业务场景之后,配置针对所述新的业务场景的任务过滤规则、业务处理逻辑、任务监控方式以及业务校验方式中的一种以上。
在一种可选方式中,所述核心处理模块,具体用于:
确定所述有效即时任务对应的目标业务场景;
获取所述目标业务场景的业务处理逻辑;
利用所述业务处理线程池中的线程,基于所述目标业务场景的业务处理逻辑处理所述有效即时任务。
在一种可选方式中,所述核心处理模块,具体用于:
确定所述批量即时任务中当前待过滤任务所对应的业务场景;
根据与所述当前待过滤任务所对应的业务场景适配的任务过滤规则,判断所述当前待过滤任务是否为有效即时任务。
在一种可选方式中,所述核心处理模块,还用于:
如果将过滤处理获得的有效即时任务添加至事件队列时所述事件队列溢出,将所述有效即时任务持久化至第二事件数据库,以在所述第二事件数据库中保存为待处理任务;
在所述事件队列中存在剩余空间时,从所述第二事件数据库中获取所述待处理任务并添加至所述事件队列。
基于同一发明构思,本说明书实施例提供一种任务处理方法,应用于分布式计算机系统200。参考图1所示,分布式计算机系统200包括多个任务处理节点201,任务处理节点201用于执行前述实施例所述的任务处理方法中任一可选方式所述的步骤。
基于同一发明构思,本说明书实施例提供一种分布式计算机系统200,包括多个前述实施例中所述的任务处理节点201,所述任务处理节点201上布置有任务处理装置202。如图4所示,任务处理装置202包括存储器404、处理器402及存储在存储器404上并可在处理器402上运行的计算机程序,处理器402执行程序时实现前述实施例中任务处理方法的任一可能实施方式所述的步骤。
其中,在图4中,总线架构(用总线400来代表),总线400可以包括任意数量的互联的总线和桥,总线400将包括由处理器402代表的一个或多个处理器和存储器404代表的存储器的各种电路链接在一起。总线400还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口406在总线400和接收器401和发送器403之间提供接口。接收器401和发送器403可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器402负责管理总线400和通常的处理,而存储器404可以被用于存储处理器402在执行操作时所使用的数据。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。

Claims (21)

1.一种任务处理方法,包括:
接收M个外部节点传来的M个第二业务处理请求,M为大于1的整数;将所述M个第二业务处理请求分别转换为对应的定时触发任务;利用定时消息中间件在到达所述定时触发任务的触发时间时发出所述定时触发任务,其中,针对所述第二业务处理请求的任务类型为长事件任务,将所述长事件任务转换为多个新短事件任务;将所述新短事件任务持久化至第一事件数据库;从所述第一事件数据库中获取任务执行时间点与当前时间点匹配的新短事件任务,并转换为定时触发任务;
监听批量即时任务,并将监听到的批量即时任务添加至事件处理线程池;
利用所述事件处理线程池中的线程并行对监听到的批量即时任务进行过滤处理,并将过滤处理得到的有效即时任务添加至事件队列;
利用业务处理线程池中的线程并行处理所述事件队列中的有效即时任务。
2.如权利要求1所述的任务处理方法,所述批量即时任务来自多个业务场景或者同一业务场景。
3.如权利要求1所述的任务处理方法,所述监听批量即时任务,包括:
接收外部节点传来的第一业务处理请求,基于所述第一业务处理请求产生所述批量即时任务;
监听基于所述第一业务处理请求产生的所述批量即时任务。
4.如权利要求1所述的任务处理方法,所述将所述M个第二业务处理请求分别转换为对应的定时触发任务,包括:通过如下步骤将所述第二业务处理请求转换定时触发任务:
检测所述第二业务处理请求的任务类型;
根据与所述第二业务处理请求的任务类型对应的转换方式,将所述第二业务处理请求转换为定时触发任务。
5.如权利要求2所述的任务处理方法,所述方法还包括:
检测是否接入新的业务场景;
根据所述新的业务场景,重新配置所述事件处理线程池的线程数和所述业务处理线程池的线程数和所述事件队列的队列大小。
6.如权利要求5所述的任务处理方法,在所述接入新的业务场景之后,还包括:
配置针对所述新的业务场景的任务过滤规则、业务处理逻辑、任务监控方式以及业务校验方式中的一种以上。
7.如权利要求5所述的任务处理方法,所述利用业务处理线程池中的线程并行处理所述事件队列中的有效即时任务,包括:
确定所述有效即时任务对应的目标业务场景;
获取所述目标业务场景的业务处理逻辑;
利用所述业务处理线程池中的线程,基于所述目标业务场景的业务处理逻辑处理所述有效即时任务。
8.如权利要求5所述的任务处理方法,所述利用所述事件处理线程池中的线程并行对监听到的批量即时任务进行过滤处理,包括:
确定所述批量即时任务中当前待过滤任务所对应的业务场景;
根据与所述当前待过滤任务所对应的业务场景适配的任务过滤规则,判断所述当前待过滤任务是否为有效即时任务。
9.如权利要求1所述的任务处理方法,还包括:
如果将过滤处理获得的有效即时任务添加至事件队列时所述事件队列溢出,将所述有效即时任务持久化至第二事件数据库,以在所述第二事件数据库中保存为待处理任务;
在所述事件队列中存在剩余空间时,从所述第二事件数据库中获取所述待处理任务并添加至所述事件队列。
10.一种任务处理装置,包括任务处理器,所述任务处理器包括:
第一消息接口,用于接收M个外部节点传来的M个第二业务处理请求,M为大于1的整数;
任务转换器,用于将所述M个第二业务处理请求分别转换为对应的定时触发任务;还用于在到达所述定时触发任务的触发时间时发出所述定时触发任务,以使任务监听器监听到批量即时任务;其中,所述任务转换器,包括:事件转换器,用于针对所述第二业务处理请求的任务类型为长事件任务,将所述长事件任务转换为多个新短事件任务,以及将所述新短事件任务持久化至第一事件数据库;定时消息中间件,用于从所述第一事件数据库中获取任务执行时间点与当前时间点匹配的新短事件任务,并转换为定时触发任务;
任务监听器,用于监听批量即时任务,并将监听到的批量即时任务添加至事件处理线程池;
核心处理模块,用于利用所述事件处理线程池中的线程并行对监听到的批量即时任务进行过滤处理,并将过滤处理得到的有效即时任务添加至事件队列,利用业务处理线程池中的线程并行处理所述事件队列中的有效即时任务。
11.如权利要求10所述的任务处理装置,所述批量即时任务来自多个业务场景或者同一业务场景。
12.如权利要求10所述的任务处理装置,所述任务处理装置还包括:第二消息接口,用于接收外部节点传来的第一业务处理请求,基于所述第一业务处理请求产生所述批量即时任务;
所述任务监听器,用于监听基于所述第一业务处理请求产生的所述批量即时任务。
13.如权利要求10所述的任务处理装置,所述任务转换器,用于通过如下步骤将所述第二业务处理请求转换定时触发任务:
检测所述第二业务处理请求的任务类型;
根据与所述第二业务处理请求的任务类型对应的转换方式,将所述第二业务处理请求转换为定时触发任务。
14.如权利要求11所述的任务处理装置,还包括业务配置模块,用于检测是否接入新的业务场景;根据所述新的业务场景,重新配置所述事件处理线程池的线程数和所述业务处理线程池的线程数和所述事件队列的队列大小。
15.如权利要求14所述的任务处理装置,所述业务配置模块,还用于:在所述接入新的业务场景之后,配置针对所述新的业务场景的任务过滤规则、业务处理逻辑、任务监控方式以及业务校验方式中的一种以上。
16.如权利要求14所述的任务处理装置,所述核心处理模块,具体用于:
确定所述有效即时任务对应的目标业务场景;
获取所述目标业务场景的业务处理逻辑;
利用所述业务处理线程池中的线程,基于所述目标业务场景的业务处理逻辑处理所述有效即时任务。
17.如权利要求14所述的任务处理装置,所述核心处理模块,具体用于:
确定所述批量即时任务中当前待过滤任务所对应的业务场景;
根据与所述当前待过滤任务所对应的业务场景适配的任务过滤规则,判断所述当前待过滤任务是否为有效即时任务。
18.如权利要求10所述的任务处理装置,所述核心处理模块,还用于:
如果将过滤处理获得的有效即时任务添加至事件队列时所述事件队列溢出,将所述有效即时任务持久化至第二事件数据库,以在所述第二事件数据库中保存为待处理任务;
在所述事件队列中存在剩余空间时,从所述第二事件数据库中获取所述待处理任务并添加至所述事件队列。
19.一种任务处理节点,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-9中任一项所述方法的步骤。
20.一种任务处理方法,应用于分布式计算机系统,所述分布式计算机系统包括多个任务处理节点,所述任务处理节点用于执行如权利要求1-9中任一项所述的方法。
21.一种分布式计算机系统,包括多个任务处理节点,所述任务处理 节点上布置有如权利要求10-18中任一项所述的任务处理装置。
CN201810966265.5A 2018-08-23 2018-08-23 任务处理方法、装置及分布式计算机系统 Active CN109308219B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810966265.5A CN109308219B (zh) 2018-08-23 2018-08-23 任务处理方法、装置及分布式计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810966265.5A CN109308219B (zh) 2018-08-23 2018-08-23 任务处理方法、装置及分布式计算机系统

Publications (2)

Publication Number Publication Date
CN109308219A CN109308219A (zh) 2019-02-05
CN109308219B true CN109308219B (zh) 2021-08-10

Family

ID=65223945

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810966265.5A Active CN109308219B (zh) 2018-08-23 2018-08-23 任务处理方法、装置及分布式计算机系统

Country Status (1)

Country Link
CN (1) CN109308219B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457126A (zh) * 2019-08-13 2019-11-15 杭州有赞科技有限公司 一种异步调用方法及系统
CN112925663A (zh) * 2021-03-25 2021-06-08 支付宝(杭州)信息技术有限公司 业务数据的计算方法和装置

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101364190A (zh) * 2008-09-24 2009-02-11 金蝶软件(中国)有限公司 图形用户界面执行同步、异步操作的方法及装置
CN102340495A (zh) * 2010-07-26 2012-02-01 中国移动通信集团广东有限公司 一种支撑跨系统业务联动的事件中心及其事件处理方法
CN102521044A (zh) * 2011-12-30 2012-06-27 北京拓明科技有限公司 一种基于消息中间件的分布式任务调度方法及系统
US8261274B2 (en) * 2009-06-29 2012-09-04 Oracle America, Inc. Method and system for managing a task
CN102681889A (zh) * 2012-04-27 2012-09-19 电子科技大学 一种云计算开放平台的调度方法
CN102981904A (zh) * 2011-09-02 2013-03-20 阿里巴巴集团控股有限公司 一种任务调度方法及系统
CN103345423A (zh) * 2013-07-03 2013-10-09 北京京东尚科信息技术有限公司 一种处理异步任务的方法和系统
CN104539713A (zh) * 2014-12-31 2015-04-22 北京奇虎科技有限公司 业务请求处理方法和装置
CN104731642A (zh) * 2013-12-23 2015-06-24 国际商业机器公司 用于高度并行作业的回填调度方法和系统
CN105389209A (zh) * 2015-12-25 2016-03-09 中国建设银行股份有限公司 一种异步批量任务处理方法及系统
CN105573840A (zh) * 2015-12-08 2016-05-11 东软集团股份有限公司 工作流运行期的事件处理方法和装置
CN105700958A (zh) * 2016-01-07 2016-06-22 北京京东尚科信息技术有限公司 一种任务自动拆分以及子任务并行执行的方法及其系统
CN107729139A (zh) * 2017-09-18 2018-02-23 北京京东尚科信息技术有限公司 一种并发获取资源的方法和装置
CN107948224A (zh) * 2016-10-12 2018-04-20 北京京东尚科信息技术有限公司 客户端请求的超时处理方法和装置
CN108345501A (zh) * 2017-01-24 2018-07-31 全球能源互联网研究院 一种分布式资源调度方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6358042B2 (ja) * 2014-10-21 2018-07-18 富士通株式会社 情報処理システム、制御装置および情報処理システムの制御方法

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101364190A (zh) * 2008-09-24 2009-02-11 金蝶软件(中国)有限公司 图形用户界面执行同步、异步操作的方法及装置
US8261274B2 (en) * 2009-06-29 2012-09-04 Oracle America, Inc. Method and system for managing a task
CN102340495A (zh) * 2010-07-26 2012-02-01 中国移动通信集团广东有限公司 一种支撑跨系统业务联动的事件中心及其事件处理方法
CN102981904A (zh) * 2011-09-02 2013-03-20 阿里巴巴集团控股有限公司 一种任务调度方法及系统
CN102521044A (zh) * 2011-12-30 2012-06-27 北京拓明科技有限公司 一种基于消息中间件的分布式任务调度方法及系统
CN102681889A (zh) * 2012-04-27 2012-09-19 电子科技大学 一种云计算开放平台的调度方法
CN103345423A (zh) * 2013-07-03 2013-10-09 北京京东尚科信息技术有限公司 一种处理异步任务的方法和系统
CN104731642A (zh) * 2013-12-23 2015-06-24 国际商业机器公司 用于高度并行作业的回填调度方法和系统
CN104539713A (zh) * 2014-12-31 2015-04-22 北京奇虎科技有限公司 业务请求处理方法和装置
CN105573840A (zh) * 2015-12-08 2016-05-11 东软集团股份有限公司 工作流运行期的事件处理方法和装置
CN105389209A (zh) * 2015-12-25 2016-03-09 中国建设银行股份有限公司 一种异步批量任务处理方法及系统
CN105700958A (zh) * 2016-01-07 2016-06-22 北京京东尚科信息技术有限公司 一种任务自动拆分以及子任务并行执行的方法及其系统
CN107948224A (zh) * 2016-10-12 2018-04-20 北京京东尚科信息技术有限公司 客户端请求的超时处理方法和装置
CN108345501A (zh) * 2017-01-24 2018-07-31 全球能源互联网研究院 一种分布式资源调度方法和系统
CN107729139A (zh) * 2017-09-18 2018-02-23 北京京东尚科信息技术有限公司 一种并发获取资源的方法和装置

Also Published As

Publication number Publication date
CN109308219A (zh) 2019-02-05

Similar Documents

Publication Publication Date Title
CN107592345B (zh) 交易限流装置、方法及交易系统
CN110858843B (zh) 业务请求处理方法、装置及计算机可读存储介质
CN111966289B (zh) 基于Kafka集群的分区优化方法和系统
US20190354983A1 (en) Payment method and device
CN111160873A (zh) 基于分布式架构的跑批处理装置及方法
CN109308219B (zh) 任务处理方法、装置及分布式计算机系统
CN111538572A (zh) 任务处理方法、装置、调度服务器及介质
CN110737425B (zh) 一种计费平台系统的应用程序的建立方法及装置
CN113515369B (zh) 一种数据处理方法、系统、终端和存储介质
CN108647102B (zh) 异构系统的服务请求处理方法、装置和电子设备
CN111125168B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN109962941B (zh) 通信方法、装置以及服务器
CN114546926B (zh) 核心簇同步、控制方法、数据处理方法、核心、设备、介质
CN102811154B (zh) 资源获取方法与网络服务器系统
CN112448855B (zh) 区块链系统参数更新方法和系统
CN115438020A (zh) 一种数据库资源调度方法、装置、设备及介质
CN110058866B (zh) 集群组件安装方法及设备
CN114612212A (zh) 一种基于风险控制的业务处理方法、装置和系统
CN113835905A (zh) 一种消息队列负载均衡方法、装置、电子设备及介质
CN108805741B (zh) 一种电能质量数据的融合方法、装置及系统
CN113965563A (zh) 基于模型的业务处理方法及装置、服务器
CN113392131A (zh) 数据处理方法、装置及计算机设备
CN112966051A (zh) 一种基于分布式的数据交换系统及方法
CN112416980A (zh) 数据业务处理方法、装置及设备
CN106776035B (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
TA01 Transfer of patent application right

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant