掌桥专利:专业的专利平台
掌桥专利
首页

任务处理系统及方法

文献发布时间:2023-06-19 09:41:38


任务处理系统及方法

技术领域

本公开的实施例涉及数据处理技术领域,特别是涉及一种任务处理系统及方法。

背景技术

业务系统是一种提供给基础人员使用的系统,是对业务处理过程进行针对性支持的信息系统,能够为某项工作的完成提供有力的工具支撑。比如电商后台处理系统,它能够对相关生产、采购等业务环节,基于某些功能模块提供很好的支持。目前,一个完整的业务功能是有一个业务系统来完成的,任务处理效率较低。尤其当需要处理的任务较多时,该业务系统可能会因负载过重而发生故障,从而导致业务处理失败,给企业和用户造成损失。

发明内容

有鉴于此,本公开的实施例提供的任务处理系统及方法,其目的在于解决现有技术业务系统处理任务效率低的问题。

本公开的实施例主要提供如下技术方案:

第一方面,本公开的实施例提供了一种任务处理系统,所述任务处理系统包括外部业务子系统和内部业务子系统,所述内部业务子系统包括接收装置、队列装置和处理装置;

所述接收装置,用于接收所述外部业务子系统发送的任务,并将接收到的任务存入所述队列装置中相应的任务队列中;

所述处理装置,用于根据待处理任务类型,从所述队列装置的相应任务队列中获取任务,并对获取的任务进行处理。

在一些实施例中,所述队列装置的一个实例对应所述接收装置的至少一个实例;

所述队列装置的一个实例对应所述处理装置的至少一个实例。

在一些实施例中,所述内部业务子系统还用于当第一队列装置实例中的总任务量大于第一预设阈值时,将第一队列装置实例所对应的接收装置实例进行缩减处理,和/或将第一队列装置实例所对应的处理装置实例进行增加处理。

在一些实施例中,所述内部业务子系统还用于当第一队列装置实例中的总任务量大于第一预设阈值,且第二队列装置实例中的总任务量小于第二预设阈值时,将所述第一队列装置实例所对应的接收装置实例缩减到第二队列装置实例所对应的接收装置中。

在一些实施例中,所述内部业务子系统还用于当第一队列装置实例中的总任务量大于第一预设阈值,且第二队列装置实例中的总任务量小于第二预设阈值时,将第二队列装置实例所对应的至少一个处理装置实例增加到第一队列装置实例所对应的处理装置中。

在一些实施例中,所述内部业务子系统还用于当第一队列装置实例中部分类型任务的任务量大于第三预设阈值时,将所述部分类型任务对应的处理装置实例中的线程数调大,和/或将第一队列装置实例的容量调大;所述部分类型的个数小于所述第一队列模块实例中所有类型的个数。

在一些实施例中,所述接收装置、所述队列装置和所述处理装置分别安装在不同设备上。

第二方面,本公开的实施例提供了一种任务处理方法,所述方法包括外部业务系统和内部业务系统,所述内部业务系统包括接收模块、队列模块和处理模块;

所述接收模块接收所述外部业务系统发送的任务,并将接收到的任务存入所述队列模块中相应的任务队列;

所述处理模块根据待处理任务类型,从所述队列模块的相应任务队列中获取任务,并对获取的任务进行处理。

在一些实施例中,所述队列模块的一个实例对应所述接收模块的至少一个实例;

所述队列模块的一个实例对应所述处理模块的至少一个实例。

在一些实施例中,所述方法还包括:

当第一队列模块实例中的总任务量大于第一预设阈值时,将第一队列模块实例所对应的接收模块实例进行缩减处理,和/或将第一队列模块实例所对应的处理模块实例进行增加处理。

在一些实施例中,所述将第一队列模块实例所对应的接收模块实例进行缩减处理包括:

当第一队列模块实例中的总任务量大于第一预设阈值,第二队列模块实例中的总任务量小于第二预设阈值时,将所述第一队列模块实例所对应的接收模块实例缩减到第二队列模块实例所对应的接收模块中。

在一些实施例中,所述将第一队列模块实例所对应的处理模块实例进行增加处理包括:

将第二队列模块实例所对应的至少一个处理模块实例增加到第一队列模块实例所对应的处理模块中。

在一些实施例中,所述方法还包括:

当第一队列模块实例中部分类型任务的任务量大于第三预设阈值时,将所述部分类型任务对应的处理模块实例中的线程数调大和/或将第一队列模块实例的容量调大;所述部分类型的个数小于所述第一队列模块实例中所有类型的个数。

在一些实施例中,所述接收模块、所述队列模块和所述处理模块分别部署在不同设备上。

借由上述技术方案,本公开的实施例提供的任务处理系统及方法,能够将外部业务系统的部分任务交由内部业务系统来处理,并且内部业务系统在处理业务过程中,可以由接收模块专门接收外部业务系统发送的任务,并将接收到的任务存储队列模块中相应的任务队列,当处理模块需要处理任务时,可以根据待处理任务类型,从队列模块的相应任务队列中获取任务,并对获取的任务进行处理。由此可知,本公开的实施例不仅可以为外部业务系统分担任务,还可以使用解耦的接收模块、队列模块和处理模块来处理任务,使得任务部署更加灵活,从而进一步提高了任务处理效率。

上述说明仅是本公开的实施例技术方案的概述,为了能够更清楚了解本公开的实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的实施例的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本公开的实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本公开的实施例提供的一种任务处理系统的结构示意图;

图2示出了本公开的实施例提供的一种任务处理方法的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

第一方面,本公开的一个实施例还提供了一种任务处理系统,如图1所示,所述任务处理系统包括外部业务子系统11和内部业务子系统12,所述内部业务子系统12包括接收装置121、队列装置122和处理装置123;

所述接收装置121,用于接收所述外部业务子系统发送的任务,并将接收到的任务存入所述队列装置122中相应的任务队列中;

所述处理装置123,用于根据待处理任务类型,从所述队列装置122的相应任务队列中获取任务,并对获取的任务进行处理。

在一些实施例中,所述队列装置122的一个实例对应所述接收装置121的至少一个实例;

所述队列装置122的一个实例对应所述处理装置123的至少一个实例。

在一些实施例中,所述内部业务子系统12还用于当第一队列装置实例中的总任务量大于第一预设阈值时,将第一队列装置实例所对应的接收装置实例进行缩减处理,和/或将第一队列装置实例所对应的处理装置实例进行增加处理。

在一些实施例中,所述内部业务子系统12还用于当第一队列装置实例中的总任务量大于第一预设阈值,且第二队列装置实例中的总任务量小于第二预设阈值时,将所述第一队列装置实例所对应的接收装置实例缩减到第二队列装置实例所对应的接收装置中。

在一些实施例中,所述内部业务子系统12还用于当第一队列装置实例中的总任务量大于第一预设阈值,且第二队列装置实例中的总任务量小于第二预设阈值时,将第二队列装置实例所对应的至少一个处理装置实例增加到第一队列装置实例所对应的处理装置中。

在一些实施例中,所述内部业务子系统12还用于当第一队列装置实例中部分类型任务的任务量大于第三预设阈值时,将所述部分类型任务对应的处理装置实例中的线程数调大,和/或将第一队列装置实例的容量调大;所述部分类型的个数小于所述第一队列模块实例中所有类型的个数。

在一些实施例中,所述接收装置121、所述队列装置122和所述处理装置123分别安装在不同设备上。

本公开的实施例提供的任务处理系统,能够将外部业务系统的部分任务交由内部业务系统来处理,并且内部业务系统在处理业务过程中,可以由接收模块专门接收外部业务系统发送的任务,并将接收到的任务存储队列模块中相应的任务队列,当处理模块需要处理任务时,可以根据待处理任务类型,从队列模块的相应任务队列中获取任务,并对获取的任务进行处理。由此,本公开的实施例不仅可以为外部业务系统分担任务,还可以使用解耦的接收模块、队列模块和处理模块来处理任务,使得任务部署更加灵活,从而进一步提高了任务处理效率。

第一方面的实施例提供的任务处理系统,可以用以执行第二方面的实施例所提供的任务处理方法,相关的用于的含义以及具体的实施方式可以参见第二方面的实施例中的相关描述,在此不再详细说明。

第二方面,本公开的实施例提供了一种任务处理方法,所述方法包括外部业务系统和内部业务系统,所述内部业务系统包括接收模块、队列模块和处理模块。

其中,外部业务系统主要处理主要任务,内部业务系统主要处理次要任务。接收模块、队列模块和处理模块可以部署在同一台设备上,也可以部署在不同设备上。

如图2所示,具体的任务处理方法如下:

201、所述接收模块接收所述外部业务系统发送的任务,并将接收到的任务存入所述队列模块中相应的任务队列。

接收模块提供有向外的接口,外部业务系统可以通过该接口向内部业务系统的接收模块发送任务。由于接收任务的速度比处理任务的速度快很多,所以若接收模块接收到外部业务系统发送的任务后,就直接将任务发送给处理模块进行处理,则处理模块会负载过重,发生崩溃。因此,接收模块在接收到任务后,可以先将任务进行组装,并发送到队列模块相应任务队列中进行保存,以便处理模块从任务队列中获取任务进行处理。

202、所述处理模块根据待处理任务类型,从所述队列模块的相应任务队列中获取任务,并对获取的任务进行处理。

队列模块可以有多个队列实例,每个队列实例包含接收到的全部任务类型。其中,实例可以指进程。处理模块可以根据业务需求,确定待处理的任务类型,并根据待处理的任务类型,从队列模块的相应任务队列中提取任务,并对提取的任务进行处理,最后将处理结果反馈给外部业务系统。

此外,所述队列模块的一个实例对应所述接收模块的至少一个实例;所述队列模块的一个实例对应所述处理模块的至少一个实例。也就是说,至少一个接收模块实例接收到的任务可以存储到一个队列模块实例的相应任务队列中,一个队列实例中的任务可以交由至少一个处理模块实例来处理。所述接收模块、所述队列模块和所述处理模块可以部署在同一台设备上,也可以分别部署在不同设备上。

本公开的实施例提供的任务处理方法,能够将外部业务系统的部分任务交由内部业务系统来处理,并且内部业务系统在处理业务过程中,可以由接收模块专门接收外部业务系统发送的任务,并将接收到的任务存储队列模块中相应的任务队列,当处理模块需要处理任务时,可以根据待处理任务类型,从队列模块的相应任务队列中获取任务,并对获取的任务进行处理。由此可知,本公开的实施例不仅可以为外部业务系统分担任务,还可以使用解耦的接收模块、队列模块和处理模块来处理任务,使得任务部署更加灵活,从而进一步提高了任务处理效率。

在一些实施例中,有些业务系统会因为节日等原因,任务量突然骤增。如内部业务系统应用为电商后台处理服务,到618或者双十一大促前,采购人员会频频新增、修改商品,这样写服务(外部业务为系统负责商品信息落库)调用量增加,因而调用接收模块的量增加,任务量增多,处理模块处理的任务量也增大。为了防止任务积压,可以对相应模块实例进行调整。

具体的,当第一队列模块实例中的总任务量大于第一预设阈值时,第一队列模块对应的处理模块实例处理任务量较重,整体处理效率会降低,为了提高任务处理效率可以采用如下方法:

监控平台可以将第一队列模块实例所对应的接收模块实例进行缩减处理;和/或,将第一队列模块实例所对应的处理模块实例进行增加处理。即通过减少接收到的任务量,和/或,增加处理模块实例的方法来降低第一队列模块实例中的总任务量。

具体的,在对第一队列模块实例所对应的接收模块实例进行缩减处理时,可以直接删除第一队列装置实例所对应的接收模块实例中的部分实例,也可以将其迁移到其他队列模块实例所对应的接收模块上。如监控平台可以判断第二队列模块实例中的总任务量是否小于第二预设阈值,若第二队列模块实例中的总任务量小于第二预设阈值,则监控平台可以将第一队列模块实例所对应的接收模块实例缩减到第二队列模块实例所对应的接收模块中

在将第一队列模块实例所对应的处理模块实例进行增加处理时,可以直接为第一队列模块实例创建新的处理模块实例,也可以将其他队列模块实例所对应的处理模块迁移到第一队列模块所对应的处理模块。如监控平台可以判断第二队列模块实例中的总任务量是否小于第二预设阈值,若第二队列模块实例中的总任务量小于第二预设阈值,则监控平台将第二队列模块实例所对应的至少一个处理模块实例增加到第一队列模块实例所对应的处理模块中。

其中,第二预设阈值小于第一预设阈值。第一预设阈值作为判断队列模块实例是否负载过重的临界点,即当队列模块实例中的任务量大于第一预设阈值时,说明队列模块实例负载过重,当队列模块实例中的任务量小于或等于第一预设阈值时,说明队列模块实例负载未过重。第二预设阈值作为判断队列模块实例是否比较空闲的临界点,即当队列模块实例中的任务量小于第二预设阈值时,说明队列模块实例空闲,当队列模块实例中的任务量大于或等于第二预设阈值时,说明队列模块实例不空闲。综上所述,当队列模块实例中的任务量小于第二预设阈值时,说明队列模块实例处于空闲状态;当队列模块实例中的任务量大于或等于第二预设阈值,且小于或等于第一预设阈值时,说明队列模块实例处于正常运行状态;当队列模块实例中的任务量大于第一预设阈值时,说明队列模块实例处于过载状态。

在一些实施例中,当第一队列模块实例中部分类型任务的任务量大于第三预设阈值时,为了提高对该部分类型任务的处理效率,可以将所述部分类型任务对应的处理模块实例中的线程数调大;和/或,将第一队列模块实例的容量调大。其中,将线程数调大,可以增加并发处理任务的数量,增加容量可以使得第一队列模块实例可以存储更多的任务。所述部分类型的个数小于所述第一队列模块实例中所有类型的个数。

示例性的,若接收模块实例1、2、3、4接收到任务放到队列模块实例1中,处理模块实例1、2、3、4从队列模块实例1中取出任务处理(设为条件1);接收模块实例5、6、7、8接收到任务放到队列模块实例2中,处理模块实例5、6、7、8从队列模块实例2中取出任务处理(设为条件2);则发生以下不同情况时,可以采用不同的方法进行调整,以达到负载均衡。

情况一:队列模块实例1中任务积压量超过100M后报警,队列模块实例2中任务无积压。

处理方法一:可以将条件1中的接收模块实例缩减至少一个到条件2中,和/或,缩减条件2中处理模块实例到条件1中。

处理方法二:可以直接去除条件1中的至少一个接收模块实例,和/或,扩展至少一个处理实例到条件1中。

情况二:队列模块实例1的个别任务类型的任务产生积压。

处理方法:可以把队列模块实例1对应的处理模块实例中对应积压的任务处理的线程池中的线程数调大,和/或,将队列模块实例1容量调大。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开的实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照本公开的实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

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

本领域技术人员应明白,本公开的实施例可提供为方法、系统或计算机程序产品。因此,本公开的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • 具有多个处理器的数据处理系统、用于具有多个处理器的数据处理系统的任务调度程序及用于任务调度的对应方法
  • 联合任务处理系统、任务联合作业流创建设备、方法和执行方法
技术分类

06120112265024