CN113946427A - 用于多操作系统的任务处理方法、处理器及存储介质 - Google Patents
用于多操作系统的任务处理方法、处理器及存储介质 Download PDFInfo
- Publication number
- CN113946427A CN113946427A CN202111272877.2A CN202111272877A CN113946427A CN 113946427 A CN113946427 A CN 113946427A CN 202111272877 A CN202111272877 A CN 202111272877A CN 113946427 A CN113946427 A CN 113946427A
- Authority
- CN
- China
- Prior art keywords
- task
- processed
- state
- host service
- notification
- 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
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- 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
Abstract
本申请实施例提供一种用于多操作系统的任务处理方法、处理器、服务器及存储介质,应用于中间服务集群,任务处理方法包括:调用主机服务的任务获取接口以获取主机服务中的待处理任务列表;将任务列表中的待处理任务缓存至中间服务集群的内存数据库中;从内存数据库中获取待处理任务;对待处理任务进行解析,以生成对应的任务报文;在根据任务报文确定待处理任务为合规任务的情况下,将任务报文发送至消息队列;调用调度平台的任务处理接口以发送任务处理指令至调度平台,以使调度平台根据任务处理指令处理消息队列中的任务报文对应的待处理任务。通过中间服务集群获取到主机服务中的待处理任务列表并缓存至内存数据库,能确保任务信息不会丢失。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种用于多操作系统的任务处理方法、处理器、服务器及存储介质。
背景技术
主机服务中通常包括多个任务区域,每个任务区域上都有需要处理的待处理任务。处理各个任务区域的待处理任务时,需要通过智能调度平台调起相应的主机服务的任务获取接口,并且同步主机服务上的任务状态。但是,智能调度服务无法直接访问主机的数据库,而且智能调度系统只提供任务调用、条件补发和删除的接口。同时,主机服务只提供任务查询和更新状态的接口。此时,则需要一个新的中间服务去不断获取主机服务的任务,然后处理任务调用智能调度的接口,并且同个任务的各个状态。主机服务的任务有五种状态,初始为待处理,需要更新为已查询,处理中,成功,失败。获取任务信息的查询接口,只会返回待处理状态的任务信息。可以看出,这一技术方案下,涉及到至少三套操作系统异步协同处理任务。
针对上述技术问题,现有技术中并未解决这一多操作系统下进行协同处理任务的有效方案。导致多个操作系统中任务状态无法保持一致,任务处理出现紊乱,无法保证任务处理的稳定性和有效性。
发明内容
本申请实施例的目的是提供一种用于多操作系统的任务处理方法、处理器、服务器及存储介质。
为了实现上述目的,本申请第一方面提供一种用于多操作系统的任务处理方法,任务处理方法应用于中间服务集群,任务处理方法包括:
调用主机服务的任务获取接口以获取主机服务中的待处理任务列表;
将任务列表中的待处理任务缓存至中间服务集群的内存数据库中;
从内存数据库中获取待处理任务;
对待处理任务进行解析,以生成对应的任务报文;
在根据任务报文确定待处理任务为合规任务的情况下,将任务报文发送至消息队列;
调用调度平台的任务处理接口以发送任务处理指令至调度平台,以使调度平台根据任务处理指令处理消息队列中的任务报文对应的待处理任务。
在本申请实施例中,任务处理方法还包括:
在从内存数据库中获取待处理任务之后,发送第一状态更新通知至主机服务,以使主机服务根据第一状态更新通知将待处理任务的状态由待处理状态更新为已查询状态,并从已查询状态更新为处理中状态;
接收主机服务返回的状态更新成功通知;
根据状态更新成功通知将内存数据库中待处理任务的状态由待处理状态修改为已查询状态,并从已查询状态修改为处理中状态。
在本申请实施例中,任务处理方法还包括:
接收调度平台在处理完成待处理任务后发送的任务完成通知;
在任务完成通知中携带的任务状态为处理成功状态的情况下,发送第二状态更新通知至主机服务,以使主机服务根据第二状态更新通知将待处理任务的状态更新为已完成状态。
在本申请实施例中,任务处理方法还包括:
在任务完成通知中携带的任务状态为处理失败状态的情况下,发送第三状态更新通知至主机服务,以使主机服务根据第三状态更新通知将待处理任务的状态更新为处理失败状态。
在本申请实施例中,任务处理方法还包括:
在主机服务根据第一状态更新通知将待处理任务的状态由已查询状态更新为处理中状态的过程中,主机服务发生宕机的情况下,根据内存数据库中状态为待处理状态的待处理任务发送第一状态更新通知至主机服务,其中,第一状态更新通知中携带有与待处理任务的任务号;
在主机服务根据任务号查询到待处理任务的状态为已查询状态的情况下,接收主机服务返回的更新失败通知;
根据更新失败通知将内存数据库中待处理任务的状态修改为已查询状态。
在本申请实施例中,中间服务集群包括多个中间服务器,主机服务包括多个任务区域,每个任务区域对应一个待处理任务列表;调用主机服务的任务获取接口获取主机服务中的待处理任务列表包括:
针对任意一个任务区域,多个中间服务器以串行的方式调用任务获取接口以获取到任务区域的待处理任务列表;
在确定有中间服务器成功获取到任务区域的待处理任务列表后,发送状态更新通知至主机服务,以将任务区域的任务状态由待处理状态更新为已查询状态。
在本申请实施例中,每个任务区域至少对应一个哈希队列,将任务列表中的待处理任务缓存至中间服务集群的内存数据库中包括:
将任务列表中的待处理任务缓存至内存数据库的哈希队列中,哈希队列的名称根据任务区域的区号确定,哈希队列中包含多个键值对,针对每个键值对,键值对中的key为待处理任务的任务号,value值是与任务号对应的待处理任务的任务信息。
在本申请实施例中,任务处理方法还包括:
在调用主机服务的任务获取接口获取主机服务中的待处理任务列表失败的情况下,重新调用任务获取接口;
在失败次数达到第一预设次数的情况下,发出告警提示。
在本申请实施例中,中间服务集群包括多个中间服务器,调用主机服务的任务获取接口获取主机服务中的待处理任务列表包括:
每个中间服务器对任务获取接口的分布锁进行竞争;
竞争成功的中间服务器调用主机服务的任务获取接口以获取主机服务中的待处理任务列表;
在调用任务获取接口的失败次数达到第二预设次数的情况下,竞争成功的中间服务器释放分布锁,以使多个中间服务器重新对分布锁进行竞争。
在本申请实施例中,任务处理方法还包括:
在将任务列表中的待处理任务缓存至中间服务集群的内存数据库中之后,成功调用任务获取接口的中间服务器释放分布锁,以使多个中间服务器重新对分布锁进行竞争。
在本申请实施例中,任务处理方法还包括:
对任务报文中各个字段的参数进行校验;在确定参数符合预设规则的情况下,确定任务报文对应的待处理任务为合规任务。
在本申请实施例中,任务处理方法还包括:
在确定待处理任务为不合规任务的情况下,发送第四状态更新通知至主机服务,以使主机服务根据第四状态更新通知将不合规任务的状态由待处理状态更新为调用失败状态,其中,第四状态更新通知中包含有不合规任务的任务号;
在不合规任务的任务状态更新成功的情况下,根据不合规任务的任务号删除内存数据库中对应的待处理任务的任务信息,以释放内存数据库的空间。
在本申请实施例中,任务处理方法还包括:
在不合规任务的任务状态更新失败的情况下,重新发送第四状态更新通知以更新不合规任务的任务状态;
在不合规任务的任务状态更新失败的次数达到第三预设次数的情况下,发出告警提示。
在本申请实施例中,任务处理方法还包括:
在将任务报文发送至消息队列之后,根据待处理任务的任务号删除内存数据库中对应的待处理任务的任务信息,以释放内存数据库的空间。
在本申请实施例中,任务处理方法还包括:
在将任务报文发送至消息队列失败的情况下,重新将任务报文发送至消息队列;
在将任务报文发送至消息队列失败的次数达到第四预设次数的情况下,发出告警提示。
在本申请实施例中,调用调度平台的任务处理接口以发送任务处理指令至调度平台包括:
判断待处理任务的任务类型,调用与任务类型对应的任务处理接口以发送任务处理指令至调度平台。
本申请第二方面提供一种用于多操作系统的任务处理方法,任务处理方法应用于调度平台,任务处理方法包括:
接收中间服务集群发送的任务处理指令,任务处理指令是中间服务集群在获取到主机服务中的待处理任务列表后,并确定待处理任务列表中的待处理任务为合规任务后发送的;
根据任务处理指令获取消息队列中的任务报文,其中,消息队列中的任务报文是中间服务集群在确定待处理任务为合规任务后上传的;
对任务报文对应的待处理任务进行处理。
在本申请实施例中,任务处理方法还包括:
在处理完成待处理任务后,发送任务完成通知至中间服务集群,以通过中间服务集群根据任务完成通知发送对应的状态更新通知至主机服务,以对待处理任务的状态进行更新;
其中,在任务完成通知中携带的任务状态为处理成功状态的情况下,通过中间服务集群发送第二状态更新通知至主机服务,以使主机服务根据第二状态更新通知将待处理任务的状态更新为已完成状态;
在任务完成通知中携带的任务状态为处理失败状态的情况下,通过中间服务集群发送第三状态更新通知至主机服务,以使主机服务根据第三状态更新通知将待处理任务的状态更新为处理失败状态。
本申请第三方面提供一种处理器,被配置成执行上述的用于多操作系统的任务处理方法。
本申请第四方面提供一种服务器,包括上述的处理器。
本申请第五方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得所述处理器被配置成执行上述的用于多操作系统的任务处理方法。
本申请第六方面提供一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述的用于多操作系统的任务处理方法。
上述用于多操作系统的任务处理方法,在主机服务和智能调度平台这两个操作系统之间引入了中间服务集群,通过中间服务集群获取到主机服务中的待处理任务列表后,先将待处理任务缓存至内存数据库,能确保任务信息不会丢失,且数据的读写高效。然后将内存数据库中的待处理任务发送至消息队列,调度平台采用消息队列的方式对待处理任务进行消费的方式,也能实现任务异步调用、流量消峰、逻辑解耦。且这一方式下,有效地确保在高并发的情况下,待处理任务也能被正确调起。不管是主机服务宕机还是中间服务集群宕机,在服务器重启后,待处理任务都能被正常继续处理,降低了由于服务器宕机导致任务被停滞无法处理的概率。
本申请实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本申请实施例,但并不构成对本申请实施例的限制。在附图中:
图1示意性示出了根据本申请实施例的用于多操作系统的任务处理方法的应用环境示意图;
图2示意性示出了根据本申请一实施例的用于多操作系统的任务处理方法的流程示意图;
图3示意性示出了根据本申请实施例的待处理任务获取过程的流程示意图;
图4示意性示出了根据本申请实施例的待处理任务处理过程的流程示意图;
图5示意性示出了根据本申请另一实施例的用于多操作系统的任务处理方法的流程示意图;
图6示意性示出了根据本申请实施例的计算机设备的内部结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解的是,此处所描述的具体实施方式仅用于说明和解释本申请实施例,并不用于限制本申请实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明,若本申请实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本申请实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本申请提供的用于多操作系统的任务处理方法,可以应用于如图1所示的应用环境中。中间服务集群可以通过主机服务的任务获取接口获取到主机服务中的待处理任务列表,然后将待处理的任务经过操作后与智能调度平台进行通信,以通过智能调度平台对待处理的任务进行处理。其中,主机服务(DRDA)可以包括多个任务区域,如图1所示的实施例中,任务区域包括国内(CN000)、美洲(AM000)、亚太(AP000)、欧非(EA000)4个区域。中间服务集群可以包括多个中间服务器,如服务器a、服务器b和服务器c。智能调度平台也可以包括多个调度服务器,如调度服务器a、调度服务器b和调度服务器c。
图2示意性示出了根据本申请实施例的用于多操作系统的任务处理方法的流程示意图。如图2所示,在本申请一实施例中,提供了一种用于多操作系统的任务处理方法,本实施例主要以该方法应用于上述图1中的中间服务集群来举例说明,包括以下步骤:
步骤202,调用主机服务的任务获取接口以获取主机服务中的待处理任务列表。
步骤204,将任务列表中的待处理任务缓存至中间服务集群的内存数据库中。
步骤206,从内存数据库中获取待处理任务。
步骤208,对待处理任务进行解析,以生成对应的任务报文。
步骤210,在根据任务报文确定待处理任务为合规任务的情况下,将任务报文发送至消息队列。
步骤212,调用调度平台的任务处理接口以发送任务处理指令至调度平台,以使调度平台根据任务处理指令处理消息队列中的任务报文对应的待处理任务。
待处理任务存储在主机服务上,中间服务集群可以调用主机服务的任务获取接口,以获取到主机服务中的待处理任务列表,从而可以获取到待处理任务列表中包含的待处理任务。中间服务集群包含的每个中间服务器都包含有各自的内存数据库(redis),可以用于临时缓存数据。在获取到待处理任务后,中间服务集群可以将待处理任务先缓存至中间服务集群的内存数据库中。如此,即便是中间服务集群发生了宕机,由于待处理任务的任务信息都保存在了内存数据库中,避免了数据的丢失,保证数据的完整性。中间服务集群可以从内存数据库中获取到待处理任务,并对待处理任务进行解析,生成与每个待处理任务对应的任务报文。中间服务集群可以对任务报文进行分析,以确定待处理任务是否合规。
在一个实施例中,上述方法还包括:对任务报文中各个字段的参数进行校验;在确定参数符合预设规则的情况下,确定任务报文对应的待处理任务为合规任务。
针对每个待处理任务的任务报文,可以对任务报文中各个字段的参数进行校验。进一步地,每个待处理任务的任务报文中需要包含哪些字段,且每个字段的参数应当是什么,都是根据每个待处理任务的业务需求来确定的。因此,可以根据每个待处理任务的业务逻辑先确定出每个任务报文的每个字段在实际需求下的标准参数。将标准参数与当前的待处理任务的任务报文中的字段参数进行对应匹配,以确定任务报文中的字段参数是否符合预设规则。若是符合,则可以确定任务报文所对应的待处理任务为合规任务。反之,若是字段参数不符合预设规则,则可以确定任务报文所对应的待处理任务为不合规任务。在确定待处理任务为合规任务的情况下,则可以进行下一步,即可以将任务报文发送至消息队列,使得多个待处理任务可以以消息(MQ)的方式被消费(处理)。中间服务集群可以调用调度平台的任务处理接口,以发送针对每个待处理任务的任务处理指令至调度平台,使得调度平台可以根据任务处理指令,并按照消息队列的排序方式依次对消息队列中的待处理任务进行处理。在一个实施例中,在将任务报文发送至消息队列之后,中间服务集群可以根据待处理任务的任务号删除内存数据库中对应的待处理任务的任务信息,以释放内存数据库的空间。进一步地,若是将合规任务的任务报文发送至消息队列失败,中间服务集群可以重新将该任务报文进行发送,以重新尝试发送至消息队列。若是发送至消息队列一直失败,且失败的次数达到第四预设次数,中间服务集群可以发出相应的告警提示,以提醒技术人员进行处理。
在一个实施例中,在确定待处理任务为不合规任务的情况下,发送第四状态更新通知至主机服务,以使主机服务根据第四状态更新通知将不合规任务的状态由待处理状态更新为调用失败状态,其中,第四状态更新通知中包含有不合规任务的任务号;在不合规任务的任务状态更新成功的情况下,根据不合规任务的任务号删除内存数据库中对应的待处理任务的任务信息,以释放内存数据库的空间。
若是字段参数不符合预设规则,则可以确定任务报文所对应的待处理任务为不合规任务。在这种情况下,中间服务器可以发送第四状态更新通知至主机服务。主机服务可以根据第四状态更新通知将不合规任务的状态由待处理状态更新为调用失败状态。第四状态更新通知中包含有不合规任务的任务号。主机服务在将不合规任务的状态由待处理状态更新为调用失败状态之后,会返回针对该不合规任务的状态更新记录至中间服务器。中间服务器在接收到该状态更新记录后,可以根据该状态更新记录中包含的不合规任务的任务号删除内存数据库中包含的该不合规任务所对应的待处理任务的任务信息,以释放内存数据库的空间,避免不必要的冗余数据的堆积。进一步地,中间服务器发送第四状态更新通知至主机服务对任务的状态进行更新时,主机服务也可能存在更新失败的情况下,即无法将不合规任务的状态由待处理状态更新为调用失败状态。这种情况下,若是主机服务对不合规任务的状态进行更新失败,主机服务则会发送对应的通知告知中间服务器,中间服务器在获知到主机服务更新失败后,会再次发送第四状态更新通知至主机服务,以使主机服务对该不合规任务的状态进行再次更新。如此反复,若是主机服务一直更新失败,且失败的次数达到第三预设次数的情况下,中间服务器可以发出告警提示,以提醒相关的技术人员进行处理。
在一个实施例中,任务处理方法还包括:在从内存数据库中获取待处理任务之后,发送第一状态更新通知至主机服务,以使主机服务根据第一状态更新通知将待处理任务的状态由待处理状态更新为已查询状态,并从已查询状态更新为处理中状态;接收主机服务返回的状态更新成功通知,根据状态更新成功通知将内存数据库中待处理任务的状态由待处理状态修改为已查询状态,并从已查询状态修改为处理中状态。
中间服务集群在从内存数据库中获取到待处理任务之后,可以发送第一状态更新通知至主机服务,主机服务可以根据第一状态更新通知将主机服务中记录的待处理任务的状态从待处理状态更新为已查询状态,然后再将任务的状态从已查询状态更新为处理中状态。按照这种方式,依次对待处理任务的状态进行更新。主机服务在将待处理任务的状态更新为处理中状态后,可以返回相应的状态更新成功通知至中间服务集群。中间服务集群在接收到主机服务返回的状态更新成功通知之后,可以根据该状态更新成功通知将中间服务集群的内存数据库中待处理任务的状态,由待处理状态修改为已查询状态,并从已查询状态修改为处理中状态。同样也通过这种方式依次对待处理任务的状态进行更新,如此,中间服务集群中存储的任务状态则可以实现与主机服务同步。
在一个实施例中,任务处理方法还包括:在主机服务根据第一状态更新通知将待处理任务的状态由已查询状态更新为处理中状态的过程中,主机服务发生宕机的情况下,根据内存数据库中状态为待处理状态的待处理任务发送第一状态更新通知至主机服务,其中,第一状态更新通知中携带有与待处理任务的任务号;在主机服务根据任务号查询到待处理任务的状态为已查询状态的情况下,接收主机服务返回的更新失败通知;根据更新失败通知将内存数据库中待处理任务的状态修改为已查询状态。
采用这种方案,假设主机服务在将待处理任务的状态由已查询状态更新为处理中状态的过程中,发生了宕机故障,主机服务还没来得及返回状态更新成功通知至中间服务集群,以使得中间服务集群中存储的任务状态进行对应更新。此时,由于主机服务中存储的待处理任务的状态为处理中,但中间服务集群的内存数据库中存储的待处理任务的状态为待处理。这一情况下,中间服务集群与主机服务的任务状态不一致,在主机服务恢复正常后,由于中间服务集群的内存数据库中存储的任务状态为待处理,因此,中间服务集群会发送第一状态更新通知至主机服务,以使得主机服务对任务状态进行更新。其中,第一状态更新通知中携带有与待处理任务的任务号。任务号是全局唯一的,与每个待处理任务是一一对应的。然而,此时主机服务的任务状态已经是处理中,因此主机服务根据第一状态更新通知中携带的任务号对待处理任务的状态进行更新时,将会更新失败。主机服务在更新失败后,会返回相对应的更新失败通知至中间服务集群。中间服务集群在接收到主机服务返回的更新失败通知后,可以根据更新失败通知将内存数据库中与更新失败通知中携带的任务号与该任务号对应的状态记录,将内存数据库中对应待处理任务的状态,修改为已查询状态。如此,仍然可以实现中间服务集群与主机服务中任务状态的一致性。
在一个实施例中,任务处理方法还包括:接收调度平台在处理完成待处理任务后发送的任务完成通知;在任务完成通知中携带的任务状态为处理成功状态的情况下,发送第二状态更新通知至主机服务,以使主机服务根据第二状态更新通知将待处理任务的状态更新为已完成状态。
中间服务集群可以将获取到的待处理任务发送至消息队列,并调用调度平台的任务处理接口以发送任务处理指令至调度平台,使得调度平台对待处理任务进行处理。调度平台在根据任务处理指令对待处理任务进行处理完毕后,可以发送任务完成通知至中间服务集群,任务完成通知中携带有待处理任务的任务状态。若是中间服务集群在接收到任务完成通知,且确定任务完成通知中携带的任务状态为处理成功状态,中间服务集群可以发送第二状态更新通知至主机服务。主机服务在接收到第二状态更新通知后,可以根据第二状态更新通知中携带的任务号,将任务号对应的待处理任务的状态更新为已完成状态。在一个实施例中,若是中间服务集群在接收到任务完成通知,且确定任务完成通知中携带的任务状态为处理失败状态,中间服务集群可以发送第三状态更新通知至主机服务。主机服务在接收到第三状态更新通知后,可以根据第三状态更新通知中携带的任务号,将该任务号对应的待处理任务的状态更新为处理失败状态。
在一个实施例中,中间服务集群包括多个中间服务器,主机服务包括多个任务区域,每个任务区域对应一个待处理任务列表。调用主机服务的任务获取接口获取主机服务中的待处理任务列表包括:针对任意一个任务区域,多个中间服务器以串行的方式调用任务获取接口以获取到任务区域的待处理任务列表;在确定有中间服务器成功获取到任务区域的待处理任务列表后,发送状态更新通知至主机服务,以将任务区域的任务状态由待处理状态更新为已查询状态。
中间服务集群可以包括多个中间服务器,如服务器a、服务器b和服务器c等。主机服务(DRDA)可以包括多个任务区域,如国内(CN000)、美洲(AM000)、亚太(AP000)、欧非(EA000)4个区域。其中,每个任务区域都有自身的待处理任务列表,即每个任务区域对应一个待处理任务列表。在中间服务集群通过调用主机服务的任务获取接口,以获取到主机服务中的待处理任务列表时,中间服务集群包括的多个中间服务器可以以串行的方式调用任务获取接口以获取到任务区域的待处理任务列表。也就是说,主机服务的多个任务区域的任务是并行的,多个中间服务器可以同时获取多个任务区域的待处理任务。但针对同一个任务区域,多个中间服务器是以串行的方式去获取该任务区域的待处理任务的。这是为了避免同一个任务区域的待处理任务被多个中间服务器同时获取到并进行后续的处理。因此,针对任意一个任务区域,多个中间服务器可以通过串行的方式去进行待处理任务的获取。当任意一个中间服务器成功获取到该任务区域的待处理任务时,获取到任务的中间服务器则会发送状态更新通知至主机服务器,以使得该任务区域的状态由待处理状态更新为已查询状态,如此,该任务区域的待处理任务则不会再被其他中间服务器进行获取并处理,避免同一个任务区域的任务被处理多次。在一个实施例中,在调用主机服务的任务获取接口获取主机服务中的待处理任务列表失败的情况下,重新调用任务获取接口;在失败次数达到第一预设次数的情况下,发出告警提示。中间服务集群在调用主机服务的任务获取接口以获取主机服务中的待处理任务列表时,若是获取失败,中间服务集群可以重新调用该任务获取接口。若是仍然失败,且失败次数的次数达到第一预设次数,则中间服务集群可以发出告警提示,以提醒相关技术人员进行处理。
进一步地,在一个实施例中,调用主机服务的任务获取接口获取主机服务中的待处理任务列表包括:每个中间服务器对任务获取接口的分布锁进行竞争;竞争成功的中间服务器调用主机服务的任务获取接口以获取主机服务中的待处理任务列表;在调用任务获取接口的失败次数达到第二预设次数的情况下,竞争成功的中间服务器释放分布锁,以使多个中间服务器重新对分布锁进行竞争。
为了避免同一时间下,同一个任务区域的待处理任务被多个中间服务器获取到,并进行多次处理,本方法中可以引入分布锁。中间服务集群的多个中间服务器在竞争获取主机服务的任务获取接口,以希望获取到主机服务的待处理任务时,实际上是多个中间服务器在对任务获取接口的分布锁进行竞争。主机服务可以有多个任务区域,针对每个任务区域而言,都有与其各自对应的一个分布锁。例如,假设有4个任务区域,那么则有4个分布锁,分别与这4个任务区域对应。多个中间服务器可以同时对4个任务区域的4个分布锁进行竞争。成功竞争到分布锁的那个中间服务器才能够对任务获取接口进行调用。例如,中间服务器a成功竞争到了国内(CN000)的任务区域的分布锁,那么只有该中间服务器a才能有权限调用国内(CN000)任务区域的任务获取接口,其他中间服务器则无法调用任务获取接口。如此,可以避免同一个任务区域的任务被多次调用处理。竞争分布锁成功的中间服务器此时有权限可以调用主机服务的任务获取接口。在调用任务获取接口时,有可能调用接口失败,即在调用接口后也无法正常获取到待处理任务。若是失败的次数达到第二预设次数,竞争成功的中间服务器会释放分布锁,那么该任务区域的分布锁则可以被所有的中间服务器进行重新的竞争,竞争成功的中间服务器才有权限调用该分布锁对应的任务区域的任务获取接口。进一步地,在一个实施例中,若是竞争分布锁成功的中间服务器在调用任务获取接口时,成功调用接口且获取到了任务区域的待处理任务,该竞争分布锁成功的中间服务器可以将获取到的待处理任务缓存至内存数据库中。在将任务列表中的待处理任务缓存至内存数据库中之后,此成功调用任务获取接口的中间服务器同样可以释放该任务区域的分布锁,以使全部的多个中间服务器可以重新对该任务区域的分布锁进行竞争,以获取到该任务区域新的待处理任务。
进一步地,在一个实施例中,每个任务区域至少对应一个哈希队列,将任务列表中的待处理任务缓存至中间服务集群的内存数据库中包括:将任务列表中的待处理任务缓存至内存数据库的哈希队列中,哈希队列的名称根据任务区域的区号确定的,哈希队列中包含多个键值对,针对每个键值对,键值对中的key为待处理任务的任务号,value值是与任务号对应的待处理任务的任务信息。
主机服务可以包括多个任务区域,在每个中间服务器的内存数据库中,都存储有与每个任务区域对应的哈希队列。其中,每个任务区域至少对应一个哈希队列。假设主机服务包括4个任务区域,那么针对任意一个中间服务器,其内存数据库中,则至少包括4个哈希队列,每个哈希队列都与其中一个任务区域所对应。哈希队列的名称是根据任务区域的区号确定的。哈希队列中包含有多个键值对,键值对是由key(键)和value(值)组成的。其中,key是唯一标识符。在本实施例中,哈希队列中的键值对中的key,可以是每个待处理任务的任务号,以实现key的唯一性。value值则可以是与任务号对应的待处理任务的任务信息。中间服务器在获取到主机服务中的待处理任务列表后,可以将待处理任务列表中的待处理任务缓存至内存数据库的哈希队列中,具体地,可以将待处理任务缓存至与其任务区域所对应的哈希队列中。
进一步地,在一个实施例中,调用调度平台的任务处理接口以发送任务处理指令至调度平台时,可以先判断每个待处理任务的任务类型,并调用与每个待处理任务的任务类型对应的任务处理接口来发送与之相对应的任务处理指令,以使调度平台可以进行对应处理。例如,若是任务类型为条件类任务,即需要满足特定的条件下,此任务才会被触发,此时中间服务集群可以调用条件类任务的补发、删除等任务处理接口,以使调度平台可以对条件类任务进行处理。若是任务类型为调度类任务,中间服务集群可以调用调度平台的实例化任务处理接口,使得调度平台对此调度类的任务进行处理。
需要补充的是,上述的第一状态更新通知、第二状态更新通知、第三状态更新通知、第四状态更新通知以及更新失败通知等,均是状态更新通知,均是为了使得主机服务或中间服务集群对待处理任务的状态进行更新。但为了便于描述,则进行了命名区分。同样地,第一预设次数、第二预设次数、第三预设次数以及第四预设次数,都是属于预先设定的次数阈值,其数值可以一样,也可以不一样,均可以根据技术人员的设定而定。但为了便于描述,进行了区分,但实际过程中,其可以设置为一致的数值。如,可以都将上述的预设次数设置为3次。
上述用于多操作系统的任务处理方法,在主机服务和智能调度平台这两个操作系统之间引入了中间服务集群,通过中间服务集群获取到主机服务中的待处理任务列表后,先将待处理任务缓存至内存数据库,能确保任务信息不会丢失,且数据的读写高效。然后将内存数据库中的待处理任务发送至消息队列,调度平台采用消息队列的方式对待处理任务进行消费的方式,也能实现任务异步调用、流量消峰、逻辑解耦。且这一方式下,有效地确保在高并发的情况下,待处理任务也能被正确调起。不管是主机服务宕机还是中间服务集群宕机,在服务器重启后,待处理任务都能被正常继续处理,降低了由于服务器宕机导致任务被停滞无法处理的概率。并且,在遇到异常事件时,还能及时发出告警提示,以便及时发现问题并处理。
如图3所示,示出了一个实施例中待处理任务被获取到且进行一系列处理操作的流程示意图。如图3所示,中间服务集群可以设置一个定时任务,即可以定时调用主机服务的任务获取接口以从主机服务中获取待处理任务列表,再获取到待处理任务列表中的待处理任务。其中,中间服务集群包括多个中间服务器,主机服务包括多个任务区域,每个任务区域对应一个待处理任务列表。那么,每个中间服务器都可以对全部的任务区域的任务获取接口的分布锁进行竞争。如图3中所示的,假设任务区域有4个,即主机服务中包括4个大区的任务,那么可以开启4个大区的任务获取进程,4个任务区域则有4个分布锁,分别与这4个任务区域对应。多个中间服务器可以同时对4个任务区域的4个分布锁进行竞争。成功竞争到分布锁的那个中间服务器才能够对任务获取接口进行调用。
例如,中间服务器a成功竞争到了国内(CN000)的任务区域的分布锁,那么只有该中间服务器a才能有权限调用国内(CN000)任务区域的任务获取接口,其他中间服务器则无法调用任务获取接口。如此,可以避免同一个任务区域的任务被多次调用处理。竞争分布锁成功的中间服务器有权限可以调用主机服务的任务获取接口,以获取到主机服务的待处理任务。然后,可以判断中间服务集群是否获取任务成功。若获取任务失败,则可以重新调用任务获取接口以重新尝试获取待处理任务。若是获取失败的次数达到第一预设次数,如达到3次,则可以发出告警提示。同时,竞争分布锁成功的中间服务器将会释放分布锁,以使多个中间服务器重新对分布锁进行竞争。若获取任务成功,中间服务集群中的中间服务器则可以将获取到的待处理任务登记到内存数据库中以进行缓存。然后,成功调用任务获取接口的中间服务器同样可以释放该任务区域的分布锁,以使全部的多个中间服务器可以重新对该任务区域的分布锁进行竞争,以获取到该任务区域新的待处理任务。
中间服务器可以从内存数据库中获取待处理任务,然后中间服务器可以发送第一状态更新通知至主机服务,主机服务可以根据第一状态更新通知将主机服务中记录的待处理任务的状态从待处理状态更新为已查询状态,然后再将任务的状态从已查询状态更新为处理中状态。按照这种方式,依次对待处理任务的状态进行更新。主机服务在将待处理任务的状态更新为处理中状态后,可以返回相应的状态更新成功通知至中间服务集群。中间服务集群在接收到主机服务返回的状态更新成功通知之后,可以根据该状态更新成功通知将中间服务集群的内存数据库中待处理任务的状态,由待处理状态修改为已查询状态,并从已查询状态修改为处理中状态。同样也通过这种方式依次对待处理任务的状态进行更新,如此,中间服务集群中存储的任务状态则可以实现与主机服务同步。
中间服务器可以将任务列表中的待处理任务缓存至内存数据库的哈希队列中,哈希队列的名称根据任务区域的区号确定的,哈希队列中包含多个键值对,针对每个键值对,键值对中的key为待处理任务的任务号,value值是与任务号对应的待处理任务的任务信息。然后,中间服务器可以对任务状态更新为处理中状态的待处理任务进行解析,以生成对应的任务报文。然后,中间服务器可以对任务报文中各个字段的参数进行校验,以确定任务报文中的字段参数是否符合预设规则。若是符合,则可以确定任务报文所对应的待处理任务为合规任务。反之,若是字段参数不符合预设规则,则可以确定任务报文所对应的待处理任务为不合规任务。在确定待处理任务为不合规任务的情况下,中间服务器可以确定针对该任务的检查不通过,中间服务器可以发送第四状态更新通知至主机服务,以使主机服务将该任务的状态修改为调用失败状态。可以判断主机服务是否对任务的状态更新成功,若更新成功,主机服务则会返回相应的更新成功的通知至中间服务器,中间服务器则可以根据该更新成功的通知确定主机服务已经将任务的状态更新为调用失败状态。然后,中间服务器则可以根据该任务的任务号删除内存数据库中对应的待处理任务的任务信息,以释放内存数据库的空间。若主机服务更新任务的状态失败,主机服务则会发送对应的通知告知中间服务器,中间服务器在获知到主机服务更新失败后,会再次发送第四状态更新通知至主机服务,以使主机服务对该不合规任务的状态进行再次更新。如此反复,若是主机服务一直更新失败,且失败的次数达到第三预设次数的情况下,中间服务器可以发出告警提示,以提醒相关的技术人员进行处理。
在确定待处理任务为合规任务的情况下,则可以进行下一步,即可以将任务报文发送至消息队列,使得多个待处理任务可以以消息(MQ)的方式被消费(处理)。进一步地,还可以判断将任务报文发送至消息队列是否成功,若成功,中间服务器可以根据待处理任务的任务号删除内存数据库中对应的待处理任务的任务信息,以释放内存数据库的空间。若将任务报文发送至消息队列失败,则可以尝试多次重新发送。若发送失败的次数达到第四预设次数,则可以发出告警提示。发送至消息队列成功后,中间服务集群可以调用调度平台的任务处理接口,以发送针对每个待处理任务的任务处理指令至调度平台,使得调度平台可以根据任务处理指令,并按照消息队列的排序方式依次对消息队列中的待处理任务进行处理。
如图4所示,示出了一个实施例中待处理任务被处理的流程示意图。在本实施例中,智能调度平台可以通过消费消息队列的方式,以对消息队列中的待处理任务进行处理。首先,中间服务器可以判断待处理任务的任务类型,并调用与每个待处理任务的任务类型对应的任务处理接口来发送与之相对应的任务处理指令,以使调度平台可以进行对应处理。例如,若是任务类型为条件类任务,即需要满足特定的条件下,此任务才会被触发,此时中间服务集群可以调用条件类任务的补发、删除等任务处理接口,以使调度平台可以对条件类任务进行处理。若是任务类型为调度类任务,中间服务集群可以调用调度平台的实例化任务处理接口,使得调度平台对此调度类的任务进行处理。接下来,中间服务集群可以获取到智能调度平台针对每个待处理任务的处理情况。即,中间服务集群可以接收到智能调度平台返回的任务完成通知。在任务完成通知中携带的任务状态为处理成功状态的情况下,中间服务集群可以发送第二状态更新通知至主机服务,以使主机服务根据第二状态更新通知将待处理任务的状态更新为已完成状态。在任务完成通知中携带的任务状态为处理失败状态的情况下,中间服务集群可以发送第三状态更新通知至主机服务,以使主机服务根据第三状态更新通知将待处理任务的状态更新为处理失败状态。同时,若是智能调度平台请求处理某个待处理任务的请求超时,则不对该待处理任务进行消费,即未对该待处理任务进行处理,此时无需更新该待处理任务的任务状态。
如图5所示,在一个实施例中,也提供了一种任务处理方法。本实施例主要以该方法应用于上述图1中的调度平台来举例说明,包括以下步骤:
步骤502,接收中间服务集群发送的任务处理指令,任务处理指令是中间服务集群在获取到主机服务中的待处理任务列表后,并确定待处理任务列表中的待处理任务为合规任务后发送的。
步骤504,根据任务处理指令获取消息队列中的任务报文,其中,消息队列中的任务报文是中间服务集群在确定待处理任务为合规任务后上传的。
步骤506,对任务报文对应的待处理任务进行处理。
待处理任务存储在主机服务上,中间服务集群可以调用主机服务的任务获取接口,以获取到主机服务中的待处理任务列表,从而可以获取到待处理任务列表中包含的待处理任务。中间服务集群可以对待处理任务进行解析,生成与每个待处理任务对应的任务报文。进一步地,中间服务集群可以对任务报文进行分析,以确定待处理任务是否合规。在确定待处理任务为合规任务的情况下,中间服务集群可以将任务报文发送至消息队列,使得多个待处理任务可以以消息(MQ)的方式被消费(处理)。中间服务集群可以调用调度平台的任务处理接口,以发送针对每个待处理任务的任务处理指令至调度平台。调度平台在接收到中间服务集群发送的任务处理指令后,可以根据任务处理指令,并按照消息队列的排序方式依次对消息队列中的待处理任务进行处理。反之,若是待处理任务不是合规任务,那么中间服务器可以发送对应的第四状态更新通知至主机服务。主机服务可以根据第四状态更新通知将不合规任务的状态由待处理状态更新为调用失败状态。
在一个实施例中,上述任务处理方法还包括:在处理完成待处理任务后,发送任务完成通知至中间服务集群,以通过中间服务集群根据任务完成通知发送对应的状态更新通知至主机服务,以对待处理任务的状态进行更新;其中,在任务完成通知中携带的任务状态为处理成功状态的情况下,通过中间服务集群发送第二状态更新通知至主机服务,以使主机服务根据第二状态更新通知将待处理任务的状态更新为已完成状态;在任务完成通知中携带的任务状态为处理失败状态的情况下,通过中间服务集群发送第三状态更新通知至主机服务,以使主机服务根据第三状态更新通知将待处理任务的状态更新为处理失败状态。
进一步地,调度平台在根据任务处理指令对待处理任务进行处理完毕后,可以发送任务完成通知至中间服务集群,任务完成通知中携带有待处理任务的任务状态。若是中间服务集群在接收到任务完成通知,且确定任务完成通知中携带的任务状态为处理成功状态,中间服务集群可以发送第二状态更新通知至主机服务。主机服务在接收到第二状态更新通知后,可以根据第二状态更新通知中携带的任务号,将任务号对应的待处理任务的状态更新为已完成状态。在一个实施例中,若是中间服务集群在接收到任务完成通知,且确定任务完成通知中携带的任务状态为处理失败状态,中间服务集群可以发送第三状态更新通知至主机服务。主机服务在接收到第三状态更新通知后,可以根据第三状态更新通知中携带的任务号,将该任务号对应的待处理任务的状态更新为处理失败状态。其中,在获取到待处理任务后,中间服务集群可以将待处理任务先缓存至中间服务集群的内存数据库中。第一状态更新通知则是中间服务集群在从中间服务集群的内存数据库中获取到待处理任务之后发送给主机服务的状态更新通知,以使主机服务根据第一状态更新通知将待处理任务的状态由待处理状态更新为已查询状态,并从已查询状态更新为处理中状态。
上述的用于多操作系统的任务处理方法,在主机服务和智能调度平台这两个操作系统之间引入了中间服务集群,通过中间服务集群获取到主机服务中的待处理任务列表后,先将待处理任务缓存至内存数据库,能确保任务信息不会丢失,且数据的读写高效。然后将内存数据库中的待处理任务发送至消息队列,调度平台采用消息队列的方式对待处理任务进行消费的方式,能够实现任务异步调用、流量消峰、逻辑解耦。
图2-5为一个实施例中用于多操作系统的任务处理方法的流程示意图。应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本申请实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现上述用于多操作系统的任务处理方法。
本申请实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述用于多操作系统的任务处理方法。
在一个实施例中,提供了一种服务器,包括上述的处理器。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器A01、网络接口A02、存储器(图中未示出)和数据库(图中未示出)。其中,该计算机设备的处理器A01用于提供计算和控制能力。该计算机设备的存储器包括内存储器A03和非易失性存储介质A04。该非易失性存储介质A04存储有操作系统B01、计算机程序B02和数据库(图中未示出)。该内存储器A03为非易失性存储介质A04中的操作系统B01和计算机程序B02的运行提供环境。该计算机设备的数据库用于存储待处理任务的任务数据。该计算机设备的网络接口A02用于与外部的终端通过网络连接通信。该计算机程序B02被处理器A01执行时以实现一种用于多操作系统的任务处理方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本申请实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现如下方法的步骤:调用主机服务的任务获取接口以获取主机服务中的待处理任务列表;将任务列表中的待处理任务缓存至中间服务集群的内存数据库中;从内存数据库中获取待处理任务;对待处理任务进行解析,以生成对应的任务报文;在根据任务报文确定待处理任务为合规任务的情况下,将任务报文发送至消息队列;调用调度平台的任务处理接口以发送任务处理指令至调度平台,以使调度平台根据任务处理指令处理消息队列中的任务报文对应的待处理任务。
在一个实施例中,任务处理方法还包括:在从内存数据库中获取待处理任务之后,发送第一状态更新通知至主机服务,以使主机服务根据第一状态更新通知将待处理任务的状态由待处理状态更新为已查询状态,并从已查询状态更新为处理中状态;接收主机服务返回的状态更新成功通知;根据状态更新成功通知将内存数据库中待处理任务的状态由待处理状态修改为已查询状态,并从已查询状态修改为处理中状态。
在一个实施例中,任务处理方法还包括:接收调度平台在处理完成待处理任务后发送的任务完成通知;在任务完成通知中携带的任务状态为处理成功状态的情况下,发送第二状态更新通知至主机服务,以使主机服务根据第二状态更新通知将待处理任务的状态更新为已完成状态。
在一个实施例中,任务处理方法还包括:在任务完成通知中携带的任务状态为处理失败状态的情况下,发送第三状态更新通知至主机服务,以使主机服务根据第三状态更新通知将待处理任务的状态更新为处理失败状态。
在一个实施例中,任务处理方法还包括:在主机服务根据第一状态更新通知将待处理任务的状态由已查询状态更新为处理中状态的过程中,主机服务发生宕机的情况下,根据内存数据库中状态为待处理状态的待处理任务发送第一状态更新通知至主机服务,其中,第一状态更新通知中携带有与待处理任务的任务号;在主机服务根据任务号查询到待处理任务的状态为已查询状态的情况下,接收主机服务返回的更新失败通知;根据更新失败通知将内存数据库中待处理任务的状态修改为已查询状态。
在一个实施例中,中间服务集群包括多个中间服务器,主机服务包括多个任务区域,每个任务区域对应一个待处理任务列表;调用主机服务的任务获取接口获取主机服务中的待处理任务列表包括:针对任意一个任务区域,多个中间服务器以串行的方式调用任务获取接口以获取到任务区域的待处理任务列表;在确定有中间服务器成功获取到任务区域的待处理任务列表后,发送状态更新通知至主机服务,以将任务区域的任务状态由待处理状态更新为已查询状态。
在一个实施例中,每个任务区域至少对应一个哈希队列,将任务列表中的待处理任务缓存至中间服务集群的内存数据库中包括:将任务列表中的待处理任务缓存至内存数据库的哈希队列中,哈希队列的名称根据任务区域的区号确定,哈希队列中包含多个键值对,针对每个键值对,键值对中的key为待处理任务的任务号,value值是与任务号对应的待处理任务的任务信息。
在一个实施例中,任务处理方法还包括:在调用主机服务的任务获取接口获取主机服务中的待处理任务列表失败的情况下,重新调用任务获取接口;在失败次数达到第一预设次数的情况下,发出告警提示。
在一个实施例中,中间服务集群包括多个中间服务器,调用主机服务的任务获取接口获取主机服务中的待处理任务列表包括:每个中间服务器对任务获取接口的分布锁进行竞争;竞争成功的中间服务器调用主机服务的任务获取接口以获取主机服务中的待处理任务列表;在调用任务获取接口的失败次数达到第二预设次数的情况下,竞争成功的中间服务器释放分布锁,以使多个中间服务器重新对分布锁进行竞争。
在一个实施例中,任务处理方法还包括:在将任务列表中的待处理任务缓存至中间服务集群的内存数据库中之后,成功调用任务获取接口的中间服务器释放分布锁,以使多个中间服务器重新对分布锁进行竞争。
在一个实施例中,任务处理方法还包括:对任务报文中各个字段的参数进行校验;在确定参数符合预设规则的情况下,确定任务报文对应的待处理任务为合规任务。
在一个实施例中,任务处理方法还包括:在确定待处理任务为不合规任务的情况下,发送第四状态更新通知至主机服务,以使主机服务根据第四状态更新通知将不合规任务的状态由待处理状态更新为调用失败状态,其中,第四状态更新通知中包含有不合规任务的任务号;在不合规任务的任务状态更新成功的情况下,根据不合规任务的任务号删除内存数据库中对应的待处理任务的任务信息,以释放内存数据库的空间。
在一个实施例中,任务处理方法还包括:在不合规任务的任务状态更新失败的情况下,重新发送第四状态更新通知以更新不合规任务的任务状态;在不合规任务的任务状态更新失败的次数达到第三预设次数的情况下,发出告警提示。
在一个实施例中,任务处理方法还包括:在将任务报文发送至消息队列之后,根据待处理任务的任务号删除内存数据库中对应的待处理任务的任务信息,以释放内存数据库的空间。
在一个实施例中,任务处理方法还包括:在将任务报文发送至消息队列失败的情况下,重新将任务报文发送至消息队列;在将任务报文发送至消息队列失败的次数达到第四预设次数的情况下,发出告警提示。
在一个实施例中,调用调度平台的任务处理接口以发送任务处理指令至调度平台包括:判断待处理任务的任务类型,调用与任务类型对应的任务处理接口以发送任务处理指令至调度平台。
本申请实施例还提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现如下方法的步骤:接收中间服务集群发送的任务处理指令,任务处理指令是中间服务集群在获取到主机服务中的待处理任务列表后,并确定待处理任务列表中的待处理任务为合规任务后发送的;根据任务处理指令获取消息队列中的任务报文,其中,消息队列中的任务报文是中间服务集群在确定待处理任务为合规任务后上传的;对任务报文对应的待处理任务进行处理。
在一个实施例中,任务处理方法还包括:在处理完成待处理任务后,发送任务完成通知至中间服务集群,以通过中间服务集群根据任务完成通知发送对应的状态更新通知至主机服务,以对待处理任务的状态进行更新;其中,在任务完成通知中携带的任务状态为处理成功状态的情况下,通过中间服务集群发送第二状态更新通知至主机服务,以使主机服务根据第二状态更新通知将待处理任务的状态更新为已完成状态;在任务完成通知中携带的任务状态为处理失败状态的情况下,通过中间服务集群发送第三状态更新通知至主机服务,以使主机服务根据第三状态更新通知将待处理任务的状态更新为处理失败状态。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有用于多操作系统的任务处理方法步骤的程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (20)
1.一种用于多操作系统的任务处理方法,其特征在于,所述任务处理方法应用于中间服务集群,所述任务处理方法包括:
调用主机服务的任务获取接口以获取所述主机服务中的待处理任务列表;
将所述任务列表中的待处理任务缓存至所述中间服务集群的内存数据库中;
从所述内存数据库中获取所述待处理任务;
对所述待处理任务进行解析,以生成对应的任务报文;
在根据所述任务报文确定所述待处理任务为合规任务的情况下,将所述任务报文发送至消息队列;
调用调度平台的任务处理接口以发送任务处理指令至所述调度平台,以使所述调度平台根据所述任务处理指令处理所述消息队列中的任务报文对应的待处理任务。
2.根据权利要求1所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在从所述内存数据库中获取所述待处理任务之后,发送第一状态更新通知至所述主机服务,以使所述主机服务根据所述第一状态更新通知将所述待处理任务的状态由待处理状态更新为已查询状态,并从已查询状态更新为处理中状态;
接收所述主机服务返回的状态更新成功通知;
根据所述状态更新成功通知将所述内存数据库中所述待处理任务的状态由待处理状态修改为已查询状态,并从已查询状态修改为处理中状态。
3.根据权利要求2所述的任务处理方法,其特征在于,所述任务处理方法还包括:
接收所述调度平台在处理完成所述待处理任务后发送的任务完成通知;
在所述任务完成通知中携带的任务状态为处理成功状态的情况下,发送第二状态更新通知至所述主机服务,以使所述主机服务根据所述第二状态更新通知将所述待处理任务的状态更新为已完成状态。
4.根据权利要求3所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在所述任务完成通知中携带的任务状态为处理失败状态的情况下,发送第三状态更新通知至所述主机服务,以使所述主机服务根据所述第三状态更新通知将所述待处理任务的状态更新为处理失败状态。
5.根据权利要求2所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在所述主机服务根据所述第一状态更新通知将所述待处理任务的状态由已查询状态更新为处理中状态的过程中,所述主机服务发生宕机的情况下,根据所述内存数据库中状态为待处理状态的待处理任务发送第一状态更新通知至所述主机服务,其中,所述第一状态更新通知中携带有与所述待处理任务的任务号;
在所述主机服务根据所述任务号查询到所述待处理任务的状态为已查询状态的情况下,接收所述主机服务返回的更新失败通知;
根据所述更新失败通知将所述内存数据库中所述待处理任务的状态修改为已查询状态。
6.根据权利要求1所述的任务处理方法,其特征在于,所述中间服务集群包括多个中间服务器,所述主机服务包括多个任务区域,每个任务区域对应一个待处理任务列表;所述调用主机服务的任务获取接口获取所述主机服务中的待处理任务列表包括:
针对任意一个任务区域,所述多个中间服务器以串行的方式调用任务获取接口以获取到所述任务区域的待处理任务列表;
在确定有中间服务器成功获取到所述任务区域的待处理任务列表后,发送状态更新通知至所述主机服务,以将所述任务区域的任务状态由待处理状态更新为已查询状态。
7.根据权利要求6所述的任务处理方法,其特征在于,每个任务区域至少对应一个哈希队列,所述将所述任务列表中的待处理任务缓存至所述中间服务集群的内存数据库中包括:
将所述任务列表中的待处理任务缓存至内存数据库的哈希队列中,所述哈希队列的名称根据所述任务区域的区号确定,所述哈希队列中包含多个键值对,针对每个键值对,键值对中的key为待处理任务的任务号,value值是与所述任务号对应的待处理任务的任务信息。
8.根据权利要求1所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在调用主机服务的任务获取接口获取所述主机服务中的待处理任务列表失败的情况下,重新调用所述任务获取接口;
在失败次数达到第一预设次数的情况下,发出告警提示。
9.根据权利要求1所述的任务处理方法,其特征在于,所述中间服务集群包括多个中间服务器,所述调用主机服务的任务获取接口获取所述主机服务中的待处理任务列表包括:
每个中间服务器对所述任务获取接口的分布锁进行竞争;
竞争成功的中间服务器调用所述主机服务的任务获取接口以获取所述主机服务中的待处理任务列表;
在调用所述任务获取接口的失败次数达到第二预设次数的情况下,所述竞争成功的中间服务器释放所述分布锁,以使所述多个中间服务器重新对所述分布锁进行竞争。
10.根据权利要求9所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在将所述任务列表中的待处理任务缓存至所述中间服务集群的内存数据库中之后,成功调用所述任务获取接口的中间服务器释放所述分布锁,以使所述多个中间服务器重新对所述分布锁进行竞争。
11.根据权利要求1所述的任务处理方法,其特征在于,所述任务处理方法还包括:
对所述任务报文中各个字段的参数进行校验;
在确定所述参数符合预设规则的情况下,确定所述任务报文对应的待处理任务为合规任务。
12.根据权利要求11所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在确定所述待处理任务为不合规任务的情况下,发送第四状态更新通知至所述主机服务,以使所述主机服务根据所述第四状态更新通知将所述不合规任务的状态由待处理状态更新为调用失败状态,其中,所述第四状态更新通知中包含有不合规任务的任务号;
在所述不合规任务的任务状态更新成功的情况下,根据所述不合规任务的任务号删除所述内存数据库中对应的待处理任务的任务信息,以释放所述内存数据库的空间。
13.根据权利要求12所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在所述不合规任务的任务状态更新失败的情况下,重新发送所述第四状态更新通知以更新所述不合规任务的任务状态;
在所述不合规任务的任务状态更新失败的次数达到第三预设次数的情况下,发出告警提示。
14.根据权利要求1所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在将所述任务报文发送至消息队列之后,根据所述待处理任务的任务号删除所述内存数据库中对应的待处理任务的任务信息,以释放所述内存数据库的空间。
15.根据权利要求1所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在将所述任务报文发送至所述消息队列失败的情况下,重新将所述任务报文发送至所述消息队列;
在将所述任务报文发送至所述消息队列失败的次数达到第四预设次数的情况下,发出告警提示。
16.根据权利要求1所述的任务处理方法,其特征在于,所述调用调度平台的任务处理接口以发送任务处理指令至所述调度平台包括:
判断所述待处理任务的任务类型,调用与所述任务类型对应的任务处理接口以发送任务处理指令至所述调度平台。
17.一种用于多操作系统的任务处理方法,其特征在于,所述任务处理方法应用于调度平台,所述任务处理方法包括:
接收中间服务集群发送的任务处理指令,所述任务处理指令是所述中间服务集群在获取到主机服务中的待处理任务列表后,并确定所述待处理任务列表中的待处理任务为合规任务后发送的;
根据所述任务处理指令获取消息队列中的任务报文,其中,所述消息队列中的任务报文是所述中间服务集群在确定所述待处理任务为合规任务后上传的;
对所述任务报文对应的待处理任务进行处理。
18.根据权利要求17所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在处理完成所述待处理任务后,发送任务完成通知至所述中间服务集群,以通过所述中间服务集群根据所述任务完成通知发送对应的状态更新通知至所述主机服务,以对所述待处理任务的状态进行更新;
其中,在所述任务完成通知中携带的任务状态为处理成功状态的情况下,通过所述中间服务集群发送第二状态更新通知至所述主机服务,以使所述主机服务根据所述第二状态更新通知将所述待处理任务的状态更新为已完成状态;
在所述任务完成通知中携带的任务状态为处理失败状态的情况下,通过所述中间服务集群发送第三状态更新通知至所述主机服务,以使所述主机服务根据所述第三状态更新通知将所述待处理任务的状态更新为处理失败状态。
19.一种处理器,其特征在于,被配置成执行根据权利要求1至16中任意一项所述的用于多操作系统的任务处理方法。
20.一种服务器,其特征在于,包括根据权利要求19所述的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111272877.2A CN113946427A (zh) | 2021-10-29 | 2021-10-29 | 用于多操作系统的任务处理方法、处理器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111272877.2A CN113946427A (zh) | 2021-10-29 | 2021-10-29 | 用于多操作系统的任务处理方法、处理器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113946427A true CN113946427A (zh) | 2022-01-18 |
Family
ID=79337222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111272877.2A Pending CN113946427A (zh) | 2021-10-29 | 2021-10-29 | 用于多操作系统的任务处理方法、处理器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113946427A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115114359A (zh) * | 2022-05-27 | 2022-09-27 | 马上消费金融股份有限公司 | 用户数据处理方法及装置 |
CN115334066A (zh) * | 2022-10-13 | 2022-11-11 | 飞天诚信科技股份有限公司 | 一种分布式集群系统及其处理同步请求响应的方法 |
-
2021
- 2021-10-29 CN CN202111272877.2A patent/CN113946427A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115114359A (zh) * | 2022-05-27 | 2022-09-27 | 马上消费金融股份有限公司 | 用户数据处理方法及装置 |
CN115114359B (zh) * | 2022-05-27 | 2023-11-14 | 马上消费金融股份有限公司 | 用户数据处理方法及装置 |
CN115334066A (zh) * | 2022-10-13 | 2022-11-11 | 飞天诚信科技股份有限公司 | 一种分布式集群系统及其处理同步请求响应的方法 |
CN115334066B (zh) * | 2022-10-13 | 2023-02-24 | 飞天诚信科技股份有限公司 | 一种分布式集群系统及其处理同步请求响应的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109828847B (zh) | 基于区块链的锁处理方法、装置、计算机设备及存储介质 | |
CN113946427A (zh) | 用于多操作系统的任务处理方法、处理器及存储介质 | |
CN109788068B (zh) | 心跳状态信息上报方法、装置和设备及计算机存储介质 | |
CN105162879B (zh) | 实现多机房数据一致性的方法、装置及系统 | |
CN111314479A (zh) | 一种数据处理方法和设备 | |
CN110968603B (zh) | 一种数据访问方法及装置 | |
CN112865992B (zh) | 分布式主从系统中主节点的切换方法、装置和计算机设备 | |
CN113778652A (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
CN107508700B (zh) | 容灾方法、装置、设备及存储介质 | |
EP2416526B1 (en) | Task switching method, server node and cluster system | |
CN109697112B (zh) | 分布式集约化一站式作业系统和实现方法 | |
CN111464603A (zh) | 一种服务器扩容方法及扩容系统 | |
CN112860787A (zh) | 分布式主从系统中主节点的切换方法、主节点设备和存储介质 | |
CA3134297A1 (en) | Message pushing method and device thereof, computer equipment and storage medium | |
CN112015563B (zh) | 消息队列切换方法、装置、电子设备及存储介质 | |
JP2011070364A (ja) | 運用管理サーバ、ロールバック実行方法およびロールバック実行プログラム | |
CN113326146A (zh) | 一种消息处理方法、装置、电子设备及存储介质 | |
CN112070585A (zh) | 订单状态统一管理方法、装置、计算机设备和存储介质 | |
CN113064732A (zh) | 一种分布式系统及其管理方法 | |
CN110543465A (zh) | 目录操作方法、装置、计算机设备和存储介质 | |
CN115981826A (zh) | 任务调度处理方法、装置、计算机设备及可读存储介质 | |
CN111324668B (zh) | 数据库数据同步处理方法、装置及存储介质 | |
CN114610413A (zh) | 基于Java的同异步任务的执行方法、装置、设备及存储介质 | |
CN110290215B (zh) | 一种信号传输方法及装置 | |
CN110502460B (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 |