任务的互斥处理方法及装置与流程

文档序号:11829231阅读:251来源:国知局
任务的互斥处理方法及装置与流程

本发明实施例属于软件领域,尤其涉及一种任务的互斥处理方法及装置。



背景技术:

分布式系统中,可能在不同的服务器存在多个同质定时任务。其中,同质定时任务是指完全相同的任务限定在同一时间执行。

为减少同质定时任务在执行过程中发生的互斥现象,通常需要数据库对分布式系统中的各个任务进行维护:具体地,利用数据库的原子性操作和事务隔离特性,使得在分布式定时任务中只有一个同质定时任务获得启动权限,其他同质定时任务处于锁定状态,从而避免执行多个同质定时任务发生的互斥现象。但该方法中,由于分布式系统需要数据库维护各个任务之间的互斥信息,因此,消耗了分布式系统的资源,尤其当分布式系统横向扩展时会加剧这一现象,并且,由于增加了数据库维护各个任务之间的互斥信息,因此,在维护分布式系统时也需要维护数据库本身,从而增加了维护的复杂度。



技术实现要素:

本发明实施例提供了一种任务的互斥处理方法及装置,旨在解决现有方法的问题。

本发明实施例是这样实现的,一种任务的互斥处理方法,所述方法包括:

S1、控制端接收授权启动消息获取请求,所述授权启动消息获取请求携带对应同质定时任务的唯一启动标识,所述授权启动消息获取请求由不同web容器中的一个同质定时任务发送;

S2、控制端在所述授权启动消息被一个web容器中的一个同质定时任务获 取并授权启动时,拒绝发送所述授权启动消息至其他web容器中的其他同质定时任务,以拒绝执行所述其他同质定时任务。

本发明实施例的另一目的在于提供一种任务的互斥处理装置,所述装置包括:

请求接收单元,用于接收授权启动消息获取请求,所述授权启动消息获取请求携带对应同质定时任务的唯一启动标识,所述授权启动消息获取请求由不同web容器中的一个同质定时任务发送;

消息拒绝发送单元,用于在所述授权启动消息被一个web容器中的一个同质定时任务获取并授权启动时,拒绝发送所述授权启动消息至其他web容器中的其他同质定时任务,以拒绝执行所述其他同质定时任务。

在本发明实施例中,由于在不同web容器中的一个同质定时任务获取并授权启动时,拒绝发送授权启动消息至其他web容器中的其他同质定时任务,以拒绝执行所述同质定时任务,因此,在同一时间,只有一个同质定时任务能够启动,避免了与启动的任务互为同质定时任务的任务的启动而发生的互斥现象,并且,由于无需额外增加数据库维护各个任务的互斥信息,因此,减少了分布式系统的资源消耗,且减少了维护的复杂度。

附图说明

图1是本发明第一实施例提供的一种任务的互斥处理方法的流程图;

图2是本发明第二实施例提供的一种任务的互斥处理方法的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。

本发明实施例中,接收授权启动消息获取请求,在所述授权启动消息被一个web容器中的一个同质定时任务获取并授权启动时,拒绝发送所述授权启动消息至其他web容器中的其他同质定时任务,以拒绝执行所述其他同质定时任务。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一:

图1示出了本发明第一实施例提供的一种任务的互斥处理方法的流程图,详述如下:

步骤S11,控制端接收授权启动消息获取请求,所述授权启动消息获取请求携带对应同质定时任务的唯一启动标识,所述授权启动消息获取请求由不同web容器中的一个同质定时任务发送。

在分布式系统中,控制端(Queue)的功能相当于一个互斥锁,用于发送授权启动消息。若多个web容器都向Queue发送授权启动消息获取请求,则该Queue按照接收的时间先后顺序处理授权启动消息获取请求。

可选地,在步骤S11之前,包括:

控制端检测系统中互为同质定时任务的组数,每一组同质定时任务存储于对应的web容器中;根据检测的系统中互为同质定时任务的组数生成相应个数的授权启动消息。

具体地,根据每个任务的唯一标识、任务限定执行的时间判断两个任务是否为同质定时任务,当任务的唯一标识以及任务限定执行的时间相同时,判定两个任务为同质定时任务。例如,假设甲web容器中存在任务A、任务B、任务C,乙web容器中存在任务A、任务B、任务D,则由甲web容器和乙web容器组成的分布式系统中,互为同质定时任务的组数为2组。在该步骤中,假设互为同质定时任务的组数为2组,则生成2个授权启动消息。使授权启动消 息的个数等于互为同质定时任务的组数,这样,可以使得不同的同质定时任务能够及时获取授权启动消息,而又避免在授权启动消息的个数大于互为同质定时任务的组数时,随意分配给同质定时任务,从而导致同质定时任务同时启动时发生的互斥现象。

进一步地,根据检测的系统中互为同质定时任务的组数生成相应个数的授权启动消息具体包括:

根据检测的系统中互为同质定时任务的组数生成相应条数的起始信号线程;采用每一条起始信号线程生成一个授权启动消息,以生成个数与检测的系统中互为同质定时任务的组数相同的授权启动消息。

每一条起始信号线程用于生成一个授权启动消息,并将生成的授权启动消息存入Queue中,当起始信号线程生成一个授权启动消息后,该起始信号线程将不再启动,不再生成新的授权启动消息。通过控制每一条起始信号线程生成授权启动消息的数量,有利于控制授权启动消息的生成数量,并且,每当增加一组同质定时任务,则生成一条起始信号线程,提高了生成授权启动消息的灵活性。

可选地,在步骤S11之后,步骤S12之前,包括:

A1、控制端判断所述授权启动消息是否被一个web容器中的任一个同质定时任务获取,当判断为是时,转到所述步骤S12,否则转到步骤A2;

A2、控制端分配授权启动消息至所述授权启动消息获取请求对应的同质定时任务,以执行所述同质定时任务。若在分布式系统中,某一类的同质定时任务都没有获取授权启动消息,则Queue根据接收的授权启动消息获取请求的时间先后顺序,为最先发出请求的同质定时任务分配授权启动消息。

可选地,所述步骤A2包括:

A21、控制端判断所接收的同质定时任务的授权启动消息获取请求的个数 是否为1,若是则转到所述步骤A22,若大于1则转到步骤A23。

A22、当判断接收的授权启动消息获取请求为1个时,控制端分配授权启动消息至该授权启动消息获取请求对应的同质定时任务,以执行所述同质定时任务。

A23、控制端对接收所述授权启动消息获取请求的时间进行排序,将所述授权启动消息发送给最先接收到的授权启动消息获取请求对应的同质定时任务。

上述A21~A23中,当接收的同质定时任务的授权启动消息获取请求的个数为1时,无需其他操作,直接将授权启动消息分配给接收的授权启动消息获取请求对应的同质定时任务,以提高授权启动消息的分配效率;当接收的授权启动消息获取请求有多个时,则按照接收的时间先后顺序进行分配。

步骤S12,控制端在所述授权启动消息被一个web容器中的一个同质定时任务获取并授权启动时,拒绝发送所述授权启动消息至其他web容器中的其他同质定时任务,以拒绝执行所述其他同质定时任务。

该步骤中,当不同web容器中互为同质定时任务的任一个任务已获取授权启动消息时,Queue拒绝为其他web容器中与该任务互为同质定时任务的其他任务发送授权启动消息,这里的其他web容器是指非获取授权启动消息的同质定时任务对应的web容器,其他同质定时任务是指非获取授权启动消息的同质定时任务。例如,假设甲web容器中存在任务A、任务B、任务C,乙web容器中存在任务A、任务B、任务D,当甲web容器中的任务A已获取授权启动消息时,若乙web容器请求为该乙web容器中的任务A分配授权启动消息,则Queue拒绝为该乙web容器中的任务A分配授权启动消息。

可选地,在步骤S12之后,包括:

控制端接收同质定时任务被执行结束时反馈的授权启动消息,以便将所述 授权启动消息分配给所述其他web容器中的其他同质定时任务。

当获取授权启动消息的同质定时任务执行结束之后,释放其所获取的授权启动消息至Queue,这样,Queue无需生成新的起始信号线程来生成新的授权启动消息,从而节省系统资源。

本发明第一实施例中,接收授权启动消息获取请求,在所述授权启动消息被web容器中的一个同质定时任务获取并授权启动时,拒绝发送所述授权启动消息至所述web容器中的其他同质定时任务,以拒绝执行所述同质定时任务。由于在web容器中的一个同质定时任务获取并授权启动时,拒绝发送授权启动消息至所述web容器中的其他同质定时任务,以拒绝执行所述同质定时任务,因此,在同一时间,只有一个同质定时任务能够启动,避免了与启动的任务互为同质定时任务的任务的启动而发生的互斥现象,并且,由于无需额外增加数据库维护各个任务的互斥信息,因此,减少了分布式系统的资源消耗,且减少了维护的复杂度。

应理解,在本发明实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

实施例二:

图2示出了本发明第二实施例提供的一种任务的互斥处理装置的结构图,该任务的互斥处理装置可以应用在各种终端中,该终端可以包括经无线接入网RAN与一个或多个核心网进行通信的用户设备,该用户设备可以是移动电话(或称为“蜂窝”电话)、具有移动设备的计算机等,例如,用户设备还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。又例如,该移动设备可以包括智能手机、平板电脑、个人数字助理PDA、销售终端POS或车载电脑等。为了便于说明,仅示出了与本发明实施例相关的部分。

该任务的互斥处理装置包括:请求接收单元21和消息拒绝发送单元22。其中:

请求接收单元21,用于接收授权启动消息获取请求,所述授权启动消息获取请求携带对应同质定时任务的唯一启动标识,所述授权启动消息获取请求由不同web容器中的一个同质定时任务发送。

若接收到多个web容器发送的授权启动消息获取请求,则按照接收的时间先后顺序处理授权启动消息获取请求。

可选地,所述任务的互斥处理装置包括:

授权启动消息生成单元,用于检测系统中互为同质定时任务的组数,每一组同质定时任务存储于对应的web容器中;根据检测的系统中互为同质定时任务的组数生成相应个数的授权启动消息。

具体地,根据每个任务的唯一标识、任务限定执行的时间判断两个任务是否为同质定时任务,当任务的唯一标识以及任务限定执行的时间相同时,判定两个任务为同质定时任务。

进一步地,根据检测的系统中互为同质定时任务的组数生成相应个数的授权启动消息具体包括:

根据检测的系统中互为同质定时任务的组数生成相应条数的起始信号线程;采用每一条起始信号线程生成一个授权启动消息,以生成个数与检测的系统中互为同质定时任务的组数相同的授权启动消息。通过控制每一条起始信号线程生成授权启动消息的数量,有利于控制授权启动消息的生成数量,并且,每当增加一组同质定时任务,则生成一条起始信号线程,提高了生成授权启动消息的灵活性。

可选地,所述任务的互斥处理装置包括:

授权启动消息是否被分配单元,用于判断所述授权启动消息是否被一个 web容器中的任一个同质定时任务获取;

授权启动消息分配单元,用于在所述授权启动消息没有被一个web容器中的任一个同质定时任务获取时,分配授权启动消息至所述授权启动消息获取请求对应的同质定时任务,以执行所述同质定时任务。

若在分布式系统中,某一类的同质定时任务都没有获取授权启动消息,则根据接收的授权启动消息获取请求的时间先后顺序,为最先发出请求的同质定时任务分配授权启动消息。

可选地,所述授权启动消息分配单元包括:

启动消息获取请求个数判断模块,用于判断所接收的同质定时任务的授权启动消息获取请求的个数是否为1;

第一授权启动消息子分配模块,用于当判断接收的授权启动消息获取请求为1个时,分配授权启动消息至该授权启动消息获取请求对应的同质定时任务,以执行所述同质定时任务;

第二授权启动消息子分配模块,用于对接收所述授权启动消息获取请求的时间进行排序,将所述授权启动消息发送给最先接收到的授权启动消息获取请求对应的同质定时任务。

当接收的同质定时任务的授权启动消息获取请求的个数为1时,无需其他操作,直接将授权启动消息分配给接收的授权启动消息获取请求对应的同质定时任务,以提高授权启动消息的分配效率;当接收的授权启动消息获取请求有多个时,则按照接收的时间先后顺序进行分配。

消息拒绝发送单元22,用于在所述授权启动消息被一个web容器中的一个同质定时任务获取并授权启动时,拒绝发送所述授权启动消息至其他web容器中的其他同质定时任务,以拒绝执行所述其他同质定时任务。

当互为同质定时任务的任一个任务已获取授权启动消息时,该消息拒绝发 送单元22拒绝为其他web容器中与该任务互为同质定时任务的其他任务发送授权启动消息。

可选地,所述任务的互斥处理装置包括:

授权启动消息接收单元,用于接收同质定时任务被执行结束时反馈的授权启动消息,以便将所述授权启动消息分配给其他web容器中的其他同质定时任务。

当获取授权启动消息的同质定时任务执行结束之后,释放其所获取的授权启动消息,这样,该任务的互斥处理装置无需生成新的起始信号线程来生成新的授权启动消息,从而节省系统资源。

本发明第二实施例中,由于在一个web容器中的一个同质定时任务获取并授权启动时,拒绝发送授权启动消息至其他web容器中的其他同质定时任务,以拒绝执行所述同质定时任务,因此,在同一时间,只有一个同质定时任务能够启动,避免了与启动的任务互为同质定时任务的任务的启动而发生的互斥现象,并且,由于无需额外增加数据库维护各个任务的互斥信息,因此,减少了分布式系统的资源消耗,且减少了维护的复杂度。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方 法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1