一种任务的处理方法及其系统与流程

文档序号:18100798发布日期:2019-07-06 11:20阅读:174来源:国知局
一种任务的处理方法及其系统与流程

本发明属于数据处理技术领域,尤其涉及一种任务的处理方法及其系统。



背景技术:

随着自动化进程的不断深入,越来越多的任务可以通过终端设备自主完成,无需用户手动处理,特别对于例如软件开发、报表分析等涉及大量任务的项目,如何高效且可靠地对任务进行处理显得尤为重要。

然而现有的任务处理技术,当处理任务的任务终端出现异常时,例如宕机或处理资源不足,则常常会因某一个任务处理失败,而导致整个项目暂停,并且若用户无法及时发现异常,则会严重延误项目完成的进度。



技术实现要素:

有鉴于此,本发明实施例提供了一种任务的处理方法及其系统,以解决现有的任务处理技术,当处理任务的任务终端出现异常时,例如宕机或处理资源不足,则常常会因某一个任务处理失败,而导致整个项目暂停,并且若用户无法及时发现异常,则会严重延误项目完成的进度的问题。

本发明实施例的第一方面提供了一种任务的处理方法,应用于分布式任务处理系统,所述分布式任务处理系统包含:服务器以及至少两个任务处理设备,所述任务的处理方法包括:

所述服务器向各个所述任务处理设备发送任务列表;

所述任务处理设备基于所述任务列表检测当前时刻是否存在需要处理的任务;

所述任务处理设备若检测到当前时刻存在需要处理的任务,则获取所述任务的处理权限;

所述任务处理设备根据所述处理权限调用任务处理资源,处理所述任务;

所述任务处理设备生成所述任务的第一处理结果,并将所述第一处理结果发送至所述分布式任务处理系统内的其他任务处理设备,同步所述任务列表的处理进度;所述第一处理结果包含成功处理所述任务的结果信息。

本发明实施例的第二方面提供了一种任务的处理系统,所述分布式任务处理系统包含:

所述服务器用于,向各个所述任务处理设备发送任务列表;

所述任务处理设备用于,基于所述任务列表检测当前时刻是否存在需要处理的任务;

所述任务处理设备用于,若当前时刻存在需要处理的任务,则获取所述任务的处理权限;

所述任务处理设备用于,根据所述处理权限调用任务处理资源,处理所述任务;

所述任务处理设备用于,生成所述任务的第一处理结果,并将所述第一处理结果发送至所述分布式任务处理系统内的其他任务处理设备,同步所述任务列表的处理进度;所述第一处理结果包含成功处理所述任务的结果信息。

实施本发明实施例提供的一种任务的处理方法及其终端具有以下有益效果:

本发明实施例通过分布式任务处理系统中服务器向所有任务处理设备发送相同的任务列表,从而系统内各个任务处理设备均记录有所需处理的所有任务的相关信息,并在任务启动时刻,交由任一任务处理设备进行处理,并且为了确保任务处理的唯一性,分布式任务处理系统中设置了处理权限,只有获取到处理权限的任务处理设备才能够调用任务处理资源进行任务处理,并且在该任务处理设备处理完毕后,将处理成功的第一处理结果发送至分布式任务系统中各个任务处理设备,实现任务列表处理进度同步的目的。与现有的任务处理技术相比,任务列表存储于分布式任务处理系统中所有任务处理设备中,即便一个任务处理设备处理资源不足或出现宕机的情况,其他任务处理设备替代该异常的任务处理设备对任务进行处理,并且每个任务处理设备在成功处理后,还同步更新任务处理进度,从而各个任务处理设备均可以基于已经处理完成的任务的处理结果,继续处理任务列表中后续未处理的任务,提高了任务处理的可靠性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

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

图2是本发明第二实施例提供的一种任务的处理方法s103的具体实现流程图;

图3是本发明第三实施例提供的一种任务的处理方法的具体实现流程图;

图4是本发明第四实施例提供的一种任务的处理方法的具体实现流程图;

图5是本发明一实施例提供的一种分布式任务处理系统的结构框图。

具体实施方式

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

在本发明实施例中,分布式任务处理系统包含:服务器以及至少两个任务处理设备,所述服务器用于接收用户制定的任务或其他终端发送的任务,并将上述任务封装为一个任务列表,分发给系统中各个任务处理设备;所述任务处理设备用于处理服务器下发的各种任务,其中该任务处理设备包括但不限于服务器、计算机设备、平板电脑、智能手机、路由器、中间件、智能机器人等终端设备。本发明实施例中流程的执行主体包括服务器以及各个任务处理终端。图1示出了本发明第一实施例提供的任务的处理方法的交互流程图,详述如下:

在s101中,所述服务器向各个所述任务处理设备发送任务列表。

在本实施例中,服务器用于接收用户发布的各个任务,以及接收其他终端设备发送的任务处理请求。其中,若任务之间存在关联性,例如均隶属于某个测试项目或通过多个任务协同完成某项功能,则该情况下,服务器将上述有关联性的任务集成于一个任务列表中,该任务列表中各个任务的处理次序由各个任务之间的关联属性确定。

在本实施例中,任务之间的关联属性包括:任务的输入参数以及输出参数之间的对应关系。例如,任务a的输入参数中包含任务b的输出参数,则表示若需要执行任务a,则必须先执行任务b,因此,任务b在任务列表中的处理次序优先于任务a。任务之间的关联属性还可以为该任务所属的层级参数。例如,任务c需要测试应用层中某个应用程序的连通性,而任务d需要测试网络层与外网是否连通,则应用层的测试过程必须依赖网络层已经连通,因此,任务d在任务列表中的处理次序优先于任务c。

在本实施例中,服务器记录有分布式任务处理系统中各个任务处理设备的网络地址,服务器生成任务列表或接收到其他终端设备发送的任务列表后,则根据网络地址向各个任务处理设备发送上述任务列表,以使得任务处理设备处理任务列表中包含的任务。

可选地,在本实施例中,任务处理设备在接收到服务器发送的任务列表后,则根据自身的任务处理能力,确定当前任务数量是否超过预设的最大处理量,若是,则返回拒绝处理的信息给到服务器;若并未超过预设的最大处理量,则返回接受处理的信息给到服务器。服务器若检测到接受处理的信息的数量少于预设任务启动阈值,则表示当前可处理的任务处理设备的数量较少,可能会导致因部分任务处理设备宕机而导致整个任务列表中的任务处理失败,因此,服务器将向发送任务处理的信息的任务处理设备发送一个处理终止的信息,以便任务处理设备不处理任务列表中的任务。服务器等待一个预设时长后,再次发送该延迟执行的任务列表给各个任务处理设备。

在s102中,所述任务处理设备基于所述任务列表检测当前时刻是否存在需要处理的任务。

在本实施例中,任务处理设备在接收到任务列表后,则确定各个任务对应的处理时机,若任务列表中定义了任务次序,则根据任务次序依次识别各个任务的处理时机。

在本实施例中,任务列表中包含所需执行的任务以及该任务对应的处理时机。其中,该处理时机可以为一任务处理时间,即若任务处理设备检测到当前时刻到达任务处理时间,则需要执行该任务;也可以为一任务处理周期,即任务处理以任务处理周期依次执行任务列表中各个任务,每个任务之间开启时间间隔n个任务处理周期,其中n为正整数。当然任务处理时机还可以为事件触发时,任务e定义了需要任务处理设备的内存占用率小于某个数值时,才执行该任务e。因此,任务处理设备将以预设的时间间隔检测本地的内存占用率,若检测到某一时刻的内存占用率小于该任务设定的数值,则执行该任务。

在本实施例中,任务处理设备可以分布于不同的位置,例如各个任务处理设备所处的网络环境类型可以不相同,例如部分任务处理设备可以直接与互联网相连,而部分任务处理设备却部署于内网,需要通过对应的网关设备才可以于互联网进行通信。虽然服务器同时向各个任务处理终端发送任务列表,但每个任务处理设备接收到任务列表的时间可能存在差异,因此在相同时刻对于任务列表中同一任务,各个任务处理设备判断是否满足任务的触发时机的结果可能存在差异。

在本实施例中,分布式任务处理系统中包含两个以上的任务处理设备,不同的任务处理设备可以为不同类型的终端设备,还可以为相同类型的终端设备,根据实际情况而定。即分布式任务处理系统中,任务处理设备a可以为一计算机,而该系统中的另一任务处理设备b可以为一智能手机。可见,任务处理设备具体为承担分布式任务处理系统中任务处理功能的终端设备,并非限定上述所有设备的类型均同一类型的终端设备。

在本实施例中,将以分布式任务处理系统中任意任务处理设备进行任务处理的具体过程进行说明,而分布式任务处理系统中除上述举例说明的任务处理设备外,均统称为其他任务处理设备。

在s103中,所述任务处理设备若检测到当前时刻存在需要处理的任务,则获取所述任务的处理权限。

在本实施例中,任务处理设备在检测到当前时刻存在需要处理的任务,则启动任务处理流程。由于分布式任务处理系统中各个任务处理设备均能够根据任务列表确定该任务是否进行响应处理,且同一个任务只需一个任务处理设备处理即可,无需重复处理,因此,为了实现上述目的,服务器将为每一个任务配置对应的任务处理权限,只有取得该任务处理权限的任务处理设备,才可以对该任务进行处理。基于上述原因,任务处理设备首先需要获取该需要处理的任务所对应的处理权限。

在本实施例中,该处理权限可有服务器进行管理,在该情况下,任务处理设备向服务器发送处理权限获取请求,若服务器检测到该处理权限并未发送给分布式处理系统中的其他任务处理设备,即该任务处理终端为第一个申请处理权限的终端设备,则将该处理权限返回给任务处理终端,至此,任务处理终端可对该任务进行处理。

可选地,在本实施例中,服务器中各个任务均对应同一个处理权限。在该情况下,分布式任务处理系统在同一时刻只有一个任务正在处理,只有当前处理的任务处理完毕后,释放了处理权限后,下一任务才被允许处理。

可选地,在本实施例中,处理权限设置有对应的有效时间,若在该处理权限的有效时间内,任务处理设备并未生成对应的第一处理结果,则服务器会识别该任务处理设备发生异常,则回收该处理权限,并将该处理权限转发给出该任务处理设备外的其他任务处理设备,由其他任务处理设备对该任务进行处理。

在s104中,所述任务处理设备根据所述处理权限调用任务处理资源,处理所述任务。

在本实施例中,任务处理设备在获得处理权限后,可通过该处理权限调用任务处理资源,以通过该任务处理资源对需要处理的任务进行处理。任务处理资源被调用时,需要对申请调用的终端设备进行鉴权,判断该申请的终端设备是否被授予该任务的处理权限。若确定该终端设备已被授予了处理权限,则响应其调用请求;反之,若该终端设备并未被授予处理权限,则拒绝其调用请求。

在本实施例中,任务处理资源可以为服务器的相关处理资源,则分布式任务处理设备需要对任务进行处理时,均需要调用服务器的处理资源来协作完成该任务。可选地,每个任务处理设备划分了一部分的资源作为共享资源,从而分布式服务器系统中每个任务处理设备所划分的共享资源共同构成任务处理资源。在该情况下,任务处理设备在获得了处理权限后,可同时向所有任务处理设备发起共享资源的调用申请,每个任务处理设备均对发起申请的任务处理设备进行处理权限的识别,确定其是否具备处理权限,并根据识别结果确定是否同意调用共享资源。

在s105中,所述任务处理设备生成所述任务的第一处理结果;所述第一处理结果包含成功处理所述任务的结果信息。

在本实施例中,任务处理设备在完成对该任务的处理操作后,将生成一个第一处理结果,用于记载本次处理所得到的相关结果。特别地,对于任务列表中各个任务属于关联任务的情况,上一级的任务的处理结果将影响下一级的任务的输入数据,在该情况下,任务处理设备将根据该第一处理结果确定下一处理次序的任务的输入参数。

在s106中,任务处理设备将所述第一处理结果发送至所述分布式任务处理系统内的其他任务处理设备,同步所述任务列表的处理进度。

在本实施例中,任务处理设备在得到第一处理结果后,则向分布式任务处理系统中除自身外的其他任务处理设备发送该第一处理结果,已告知各个任务处理设备该任务已经处理完成,其他任务处理设备在接收到第一处理结果后,将存储该第一处理结果,实现任务列表中处理进度的同步更新的目的。

可选地,在本实施例中,可为每个任务处理设备设置主从属性,即一个或多个任务处理设备可以为主处理设备,而剩余的任务处理设备则为从处理设备,在该情况下,只有主处理设备会主动对任务进行处理,并申请任务对应的处理权限,而从主处理设备虽然记录有任务处理列表,但只有在检测到主处理设备均处于离线或异常状态下,才会处理该任务列表中的各个任务,若检测到存在一主处理设备处于正常运行状态,则不处理该任务列表中的任务,而只是等待接收主处理设备发送的第一处理结果,以记录任务列表的处理进度。

以上可以看出,本发明实施例提供的一种任务的处理方法通过分布式任务处理系统中服务器向所有任务处理设备发送相同的任务列表,从而系统内各个任务处理设备均记录有所需处理的所有任务的相关信息,并在任务启动时刻,交由任一任务处理设备进行处理,并且为了确保任务处理的唯一性,分布式任务处理系统中设置了处理权限,只有获取到处理权限的任务处理设备才能够调用任务处理资源进行任务处理,并且在该任务处理设备处理完毕后,将处理成功的第一处理结果发送至分布式任务系统中各个任务处理设备,实现任务列表处理进度同步的目的。与现有的任务处理技术相比,任务列表存储于分布式任务处理系统中所有任务处理设备中,即便一个任务处理设备处理资源不足或出现宕机的情况,其他任务处理设备替代该异常的任务处理设备对任务进行处理,并且每个任务处理设备在成功处理后,还同步更新任务处理进度,从而各个任务处理设备均可以基于已经处理完成的任务的处理结果,继续处理任务列表中后续未处理的任务,提高了任务处理的可靠性。

图2示出了本发明第二实施例提供的一种任务的处理方法s103的具体实现流程图。参见图2所示,相对于图1所述实施例,本实施例提供的一种任务的处理方法s103包括s201~s208,详述如下:

进一步地,所述任务处理设备若检测到当前时刻存在需要处理的任务,则获取所述任务的处理权限,包括:

在s201中,所述任务处理设备检测所述任务处理资源是否为空闲状态。

在本实施例中,任务处理设备在获取处理权限前,需要确定任务处理资源的状态是否为空闲状态,即当前任务处理资源是否正处于处理其他任务的过程中。由于任务处理资源在同一时刻只能用于处理一个任务,因此,若任务处理资源处于占用状态,则表示无法马上用于处理该任务,在该情况下,需要将任务添加到任务处理队列内,等待任务处理资源空闲后在进行处理,即需要执行s203的相关操作;若任务处理资源处于空闲状态,则表示当前并没有其他任务处理设备调用该任务处理资源来处理任务,因此终端设备可获取处理权限,并通过处理权限调用任务处理资源对任务进行处理,即执行s202的相关操作。

在本实施例中,若任务处理资源为服务器的处理资源,则终端设备向服务器发送一个资源状态查询请求,服务器则根据当前任务处理资源当前的状态生成一个查询结果,并返回给任务处理终端;若任务处理资源为分布于各个任务处理设备的共享资源所构成的处理资源,则各个任务处理设备上的共享资源的使用状态均是统一的,因此该情况下,终端设备只需查询本地的共享资源的使用状态,即可确定任务处理资源的使用状态。

在s202中,所述任务处理设备若检测到所述任务处理资源处于空闲状态,则向所述服务器申请所述任务的处理权限。

在本实施例中,当任务处理设备检测到任务处理资源处于空闲状态,则表示可以直接通过任务处理资源执行当前的任务,因而任务处理设备则向服务器申请该任务对应的处理权限,以对该任务进行处理。其中,该步骤的实现过程与s103的具体实现过程相同,可参见s103的相关描述,在此不再赘述。

在s203中,所述任务处理设备若检测到所述任务处理资源处于占用状态,则查询所述任务是否在任务处理队列内。

在本实施例中,任务处理设备若检测到任务处理资源处于占用状态,则无法立即调用任务处理资源对该任务进行处理,在该情况下,则需要排队申请调用该任务处理资源,并且由于分布式任务处理系统内所有任务处理设备均存储有相同的任务列表,即该任务可以被任一任务处理设备执行;因此,任务处理设备在添加任务到任务处理队列之前,需要首先确定该任务是否被其他设备添加过,即任务处理设备根据任务对应的任务标识,查询任务处理列表中是否存在与该任务标识对应的任务。若存在,则执行s207的相关操作;若不存在,则执行s204的相关操作。

在本实施例中,任务处理队列用于确定调用任务处理资源的次序。虽然部分任务列表中各个任务之间存在执行的先后次序,但任务处理资源可能同时为多个任务列表中的任务提供处理资源,而不同的任务列表之间的任务则不存在必然的先后次序,因此任务处理资源的响应方式则根据先到先得的方式响应调用。任务处理设备在确定需要对任务进行处理且任务处理资源并非处于空闲状态时,则将需要处理的任务添加到任务处理队列中,而该队列的进出规则为先进先出的规则,因此先申请的任务处理终端将较先能够调用该任务处理资源,从而该任务处理队列用于存储不同任务处理设备向其添加的多个任务。

在s204中,所述任务处理设备若检测到所述任务不在所述任务处理队列内,则将所述任务添加到所述任务处理队列。

在本实施例中,任务处理设备若检测到当前需要处理的任务并不存在于任务处理队列中,则表示并未有其他任务处理终端申请处理该任务,因此,任务处理终端将该需要处理的添加到任务对象中,实现轮候使用任务处理资源进行任务处理的目的,简而言之,即排队调用任务处理资源。

在本实施例中,任务处理设备在接收到调用任务处理资源的处理权限之前,将挂起处理该任务的线程,即任务处理设备可以执行其他相关操作,直到接收到处理权限后,才激活处理该任务的线程。

在s205中,所述服务器检测所述任务处理队列中当前处理任务是否为所述任务。

在本实施例中,服务器根据该任务处理队列中各个任务的添加次序,确定调用任务处理资源的次序,若服务器检测到当前需要进行处理的任务为上述任务处理设备添加的任务,则执行s206的相关操作。

具体地,任务处理终端在添加任务到任务处理队列时,将一同写入自身的终端标识,因此,服务器在读取任务处理队列时,在确定其中某一任务为当前处理任务时,可根据该任务关联的终端标识,确定该终端对应的通讯地址,并执行s206的相关操作。

在本实施例中,服务器在检测到任务处理资源完成一个任务的操作后,将该任务从任务处理队列中删除,并把当前需要处理任务的指针指向该任务处理队列中下一个任务,将下一个任务识别为当前需要处理的任务。

在s206中,所述服务器向所述任务处理终端发送所述任务的处理权限。

在本实施例中,服务器在确定当前需要处理任务,即任务处理列表中当前需要任务处理的指针指向该任务,则向任务对应的任务处理终端发送该任务对应的处理权限,当任务处理设备接受到该任务处理权限后,则可以通过该任务处理权限调用任务处理资源,以完成该任务。

在本发明实施例中,通过查询任务处理资源是否空闲,继而确定是马上处理任务,抑或是等待资源空闲后才处理任务,实现同一时刻分布式任务处理系统中只有一个任务被执行的目的,从而能够合理对任务处理时机进行调控,提高了系统的稳定性。

进一步地,作为本发明另一实施例,在所述若所述任务处理资源处于占用状态,则所述任务处理设备查询所述任务是否在任务处理队列内之后,还包括s207以及s208:

在s207中,所述任务处理设备若检测到所述任务在所述任务处理队列内,则丢弃所述任务。

在本实施例中,任务处理设备若检测到该任务已经被添加到任务处理队列内,则表示分布式任务处理系统中存在其他任务处理设备已经先于该任务处理设备响应该任务,即该需要处理的任务已经存在处理的任务处理设备,无需该任务处理设备对其进行处理,因此,任务处理设备则不处理该任务,并丢弃该任务,检测任务列表中下一个任务的处理时机是否到达。

在s208中,若接收到所述分布式任务处理系统内其他任务处理设备发送的第二处理结果,则所述任务处理设备将所述任务的处理状态设置为完成状态;所述第二处理结果包含成功处理所述任务的结果信息。

在本实施例中,任务处理终端由于不处理该任务,而是负责记录该任务的处理结果,即分布式任务处理系统中存在一个除自身外的其他任务处理设备对该任务进行处理,为了方便论述,在本实施例中将实际对该任务进行处理的任务处理设备简称为“实际处理设备”。实际处理设备在对该任务处理完毕之后,则会生成一个第二处理结果,然后该实际处理设备也会将第二处理结果发送给分布式任务处理系统中的所有任务处理设备。然后任务处理设备在接收到实际处理设备发送的第二处理结果后,更新存储于本地的任务列表中该任务的处理状态,将该任务的处理状态为未完成,调整为已完成,并提取该第二处理结果中包含的处理数据。

在本发明实施例中,通过接收其他任务处理设备发送的第二处理结果,同步本地的任务列表中相应任务的处理状态,从而实现进度同步的目的,提高了分布式处理系统的稳定性。

图3示出了本发明第三实施例提供的一种任务的处理方法的具体实现流程图。参见图3所示,相对于图2所述实施例,本实施例提供的一种任务的处理方法还包括s301~s303,详述如下:

在s301中,所述服务器获取所述任务处理队列中各个任务的添加时间,以及获取执行该添加操作的任务处理设备的终端标识。

在本实施例中,服务器负责管理任务处理队列,则每个任务处理终端需要申请处理任务的处理权限时,需要向服务器提出申请,在该情况下,若服务器检测到任务处理资源处于空闲状态,则向当前申请的任务处理设备发送处理权限,以便任务处理终端根据该处理权限处理任务;反之,若服务器检测到任务处理资源处于占用状态,则把该任务添加到任务处理队列中,并执行s301的相关操作。

在本实施例中,服务器在将某一个任务添加到任务处理队列时,会采集两类信息,其一为该任务的添加时间,其二为添加该任务对应的任务处理设备的终端标识。获取任务的添加时间用于设置该任务的处理次序,而获取终端标识则用于在任务处理资源空闲,可以用于执行该任务时,将对应的处理权限发送给添加该任务的任务处理终端。

在s302中,所述服务器根据各个所述添加时间的先后次序,确定各个任务的处理次序。

在本实施例中,由于任务处理队列基于先进先出规则所生成的队列,即任务的添加时间越早,且对应的处理次序将越前,因此,服务器可将根据各个任务的添加时间的先后次序,确定各个任务处理次序。需要说明的是,若某一任务已完成处理,则将该任务从任务处理队列中删除,并依次调整后续各个任务的处理次序,以避免该任务处理队列的任务累计,而需要占用较多的存储资源,确保任务处理列表中记载的任务均为未处理或正在处理的任务。

在s303中,所述服务器基于各个所述任务的处理次序以及与处理次序对应的终端标识,依次将所述处理权限发送给各个所述终端标识对应的任务处理设备。

在本实施例中,服务器在确定了各个任务对应给的处理次序后,当服务器检测到任务处理资源空闲后,则识别处理次序最靠前的一个任务为当前需要处理的任务,并查询该任务对应的终端标识,并将任务处理权限发送给该终端标识对应的任务处理终端,实现依次转发处理权限的目的。

在本发明实施例中,通过服务器对任务的添加时间以及终端标识进行采集,从而实现根据添加时间的先后次序,将处理权限依次转发给各个对应的任务处理终端,实现对任务处理进度的管控的目的,提高分布式任务处理系统中任务处理的稳定性以及强健性。

图4示出了本发明第四实施例提供的一种任务的处理方法的具体实现流程图。参见图4所示,相对于图1~图3所述实施例,本实施例提供的一种任务的处理方法还包括s401以及s402,详述如下:

在s401中,所述服务器若检测到所述任务处理设备占用所述任务处理资源的占用时间大于预设的时间阈值,则释放所述任务处理资源。

在本实施例中,任务处理设备在调用任务处理资源时,则会启动计时器,计算占用任务处理资源的占用时间。若检测到任务处理设备对应的占用时间小于预设的时间阈值,并接收到第一处理结果,则表示该任务处理设备处于正常工作状态,且本次任务处理操作并未超出预设的处理时限,回收该处理权限并转发给下一任务对应的任务处理设备;若服务器检测到任务处理设备对应的占用时间大于预设的时间阈值,则任务处理设备可能处于宕机状态或存在其他异常情况,在该情况下,服务器将释放任务处理资源,以终止该任务处理设备处理该任务。

可选地,在本实施例中,任务处理设备中该任务对应的处理权限的状态将变更为无效,则任务处理设备恢复正常后,再次通过该处理权限申请调用任务处理资源,将会识别该操作为非法操作,不予以响应。

在s402中,所述服务器将所述处理权限转发给任一除所述任务处理设备外的其他任务处理设备。

在本实施例中,为了继续执行该任务,服务器将该任务对应的处理权限转发给分布式任务处理系统中除该任务处理设备外的其他任务处理设备,以便其他任务处理设备对该任务进行处理。

在本发明实施例中,通过设定时间阈值,在任务处理设备对应的占用时间大于该时间阈值时,判断该任务处理设备存在异常,并交由其他任务处理设备进行处理,从而提高了对于任务异常情况的响应效率,及时识别异常设备。

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

图5示出了本发明一实施例提供的一种分布式任务处理系统的结构框图,该分布式任务处理系统包括的各设备用于执行图1至图4对应的实施例中的各步骤。具体请参阅图1至图4所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。

参见图5,所述任务的处理系统50包含:服务器51以及至少两个任务处理设备;

所述服务器51用于,向各个所述任务处理设备发送任务列表;

所述任务处理设备52用于,基于所述任务列表检测当前时刻是否存在需要处理的任务;

所述任务处理设备52用于,若检测到当前时刻存在需要处理的任务,则获取所述任务的处理权限;

所述任务处理设备52用于,根据所述处理权限调用任务处理资源,处理所述任务;

所述任务处理设备52用于,生成所述任务的第一处理结果,并将所述第一处理结果发送至所述分布式任务处理系统内的其他任务处理设备53,同步所述任务列表的处理进度;所述第一处理结果包含成功处理所述任务的结果信息。

可选地,所述任务处理设备用于,若检测到当前时刻存在需要处理的任务,则获取所述任务的处理权限,包括:

所述任务处理设备52用于,检测所述任务处理资源是否为空闲状态;

所述任务处理设备52用于,若检测到所述任务处理资源处于空闲状态,则向所述服务器51申请所述任务的处理权限;

所述任务处理设备52用于,若检测到所述任务处理资源处于占用状态,则查询所述任务是否在任务处理队列内;

所述任务处理设备52用于,若检测到所述任务不在所述任务处理队列内,则将所述任务添加到所述任务处理队列;若检测到所述任务处理队列中当前处理任务为所述任务,则所述服务器51向所述任务处理终端发送所述任务的处理权限。

可选地,所述任务处理设备,还用于:

所述任务处理设备52用于,若检测到所述任务在所述任务处理队列内,则丢弃所述任务;

所述任务处理设备52用于,若接收到所述分布式任务处理系统内其他任务处理设备53发送的第二处理结果,则将所述任务的处理状态设置为完成状态;所述第二处理结果包含成功处理所述任务的结果信息。

可选地,所述服务器51还用于:

所述服务器51用于,获取所述任务处理队列中各个任务的添加时间,以及获取执行该添加操作的任务处理设备52的终端标识;

所述服务器51用于,根据各个所述添加时间的先后次序,确定各个任务的处理次序;

所述服务器51用于,基于各个所述任务的处理次序以及与处理次序对应的终端标识,依次将所述处理权限发送给各个所述终端标识对应的任务处理设备52。

可选地,所述服务器51还用于:

所述服务器51用于,若检测到所述任务处理设备52占用所述任务处理资源的占用时间大于预设的时间阈值,则释放所述任务处理资源;

所述服务器51用于,将所述处理权限转发给任一除所述任务处理设备外的其他任务处理设备53。

因此,本发明实施例提供的任务的处理终端同样将任务列表存储于分布式任务处理系统中所有任务处理设备中,即便一个任务处理设备处理资源不足或出现宕机的情况,其他任务处理设备替代该异常的任务处理设备对任务进行处理,并且每个任务处理设备在成功处理后,还同步更新任务处理进度,从而各个任务处理设备均可以基于已经处理完成的任务的处理结果,继续处理任务列表中后续未处理的任务,提高了任务处理的可靠性

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

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

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

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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