任务处理方法和系统与流程

文档序号:17761834发布日期:2019-05-24 21:45阅读:187来源:国知局
任务处理方法和系统与流程

本申请涉及计算机技术领域,特别是涉及一种任务处理方法和系统。



背景技术:

批量任务又称定时任务,是指在指定时间触发并执行的任务。每个业务系统都有相应的批量任务,目前批量任务分布于各个业务系统,由业务系统在预设触发时间触发执行相应的批量任务。然而,随着业务量的增量,批量任务也在不断增加,而批量任务的增加会占用系统资源,从而影响业务系统正常业务的处理。而且,在批量任务执行过程中,若存在业务系统版本迭代或者紧急修复等问题,需要等待批量任务执行结束时,才能进行业务系统的版本迭代或者修复处理,从而影响的业务系统的版本迭代和修复效率。

目前,为了不影响业务系统中正常业务的处理,批量任务需在业务系统空闲时间处理,从而存在时间限制,存在任务处理效率的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高任务处理效率的任务处理方法和系统。

一种任务处理方法,所述方法包括:

任务中心服务器在配置文件中查询与任务标识对应的预设触发时间;

当所述预设触发时间与当前系统时间一致时,所述任务中心服务器确定用于执行与所述任务标识对应的任务的执行线程;

所述任务中心服务器通过所述执行线程获取与所述任务标识对应的参数;

当判定满足预设调用条件时,所述任务中心服务器根据所述参数生成相应的调用指令,并将所述调用指令发送到业务服务器;

所述业务服务器根据所述调用指令查询并执行所述任务标识对应的任务。

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

当判定不满足预设调用条件时,所述任务中心服务器通过所述执行线程根据所述任务标识查询相应的任务;

所述任务中心服务器通过所述执行线程根据所述参数执行查询到的所述任务。

在其中一个实施例中,所述任务中心服务器有多个;所述任务中心服务器通过所述执行线程获取与所述任务标识对应的参数,包括:

所述任务中心服务器通过自身的执行线程在自身的配置文件中,查询与所述任务标识对应的单服务器执行标识;

当查询到所述单服务器执行标识时,所述任务中心服务器通过自身的所述执行线程,将自身的网络地址写入多个任务中心服务器共用的、且对应于所述任务标识的地址字段中;

当在所述地址字段中写入自身的所述网络地址后达到预设时长时,所述任务中心服务器通过自身的所述执行线程,从所述地址字段中读取与所述任务标识对应的网络地址,并将自身的所述网络地址与从所述地址字段中读取的所述网络地址进行匹配;

当匹配成功时,匹配成功的任务中心服务器通过自身的执行线程获取与所述任务标识对应的参数。

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

当未查询到所述单服务器执行标识时,所述任务中心服务器通过自身的所述执行线程获取与所述任务标识对应的数据表标识,并锁定存储服务器中与所述数据表标识对应的数据表;

所述任务中心服务器通过自身的所述执行线程从已锁定的所述数据表中获取预设数量的参数,并在所述数据表中更新已获取的所述参数所对应的参数状态;

当从所述数据表中获取到所述预设数量的参数时,所述任务中心服务器通过自身的所述执行线程释放所述存储服务器中已锁定的所述数据表。

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

当未查询到所述单服务器执行标识时,所述任务中心服务器通过自身的所述执行线程向管理服务器发送令牌获取指令,并接收所述管理服务器对应反馈的令牌;

所述任务中心服务器通过自身的所述执行线程根据所述令牌从存储服务器中获取与所述任务标识对应的预设数量的参数;

当获取到所述预设数量的参数时,所述任务中心服务器通过自身的所述执行线程向所述管理服务器发送令牌释放指令。

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

所述任务中心服务器接收配置服务器根据所获取到的任务配置指令获取并发送的目标任务和目标参数;所述目标任务和所述目标参数与所述任务配置指令指定的目标任务标识对应;

所述任务中心服务器将所述目标任务部署到本地,并将所述目标参数和所述目标任务标识对应配置到所述配置文件中。

一种任务处理系统,所述系统包括:任务中心服务器和业务服务器;

所述任务中心服务器,用于在配置文件中查询与任务标识对应的预设触发时间;当所述预设触发时间与当前系统时间一致时,确定用于执行与所述任务标识对应的任务的执行线程;通过所述执行线程获取与所述任务标识对应的参数;当判定满足预设调用条件时,根据所述参数生成相应的调用指令,并将所述调用指令发送到所述业务服务器;

所述业务服务器,用于根据所述调用指令查询并执行所述任务标识对应的任务。

在其中一个实施例中,所述任务中心服务器有多个;

所述任务中心服务器,还用于通过自身的执行线程在自身的配置文件中,查询与所述任务标识对应的单服务器执行标识;当查询到所述单服务器执行标识时,通过自身的所述执行线程,将自身的网络地址写入多个任务中心服务器共用的、且对应于所述任务标识的地址字段中;并

当在所述地址字段中写入自身的所述网络地址后达到预设时长时,通过自身的所述执行线程,从所述地址字段中读取与所述任务标识对应的网络地址,并将自身的所述网络地址与从所述地址字段中读取的所述网络地址进行匹配;

当匹配成功时,匹配成功的任务中心服务器,还用于通过自身的执行线程获取与所述任务标识对应的参数。

在其中一个实施例中,所述系统还包括:管理服务器和存储服务器;

所述任务中心服务器,还用于当未查询到所述单服务器执行标识时,通过自身的所述执行线程向所述管理服务器发送令牌获取指令;

所述管理服务器,用于针对所接收到的令牌获取指令向所述任务中心服务器反馈相应的令牌;

所述任务中心服务器,还用于通过自身的所述执行线程根据所述令牌从所述存储服务器中获取与所述任务标识对应的预设数量的参数;当获取到所述预设数量的参数时,通过自身的所述执行线程向所述管理服务器发送令牌释放指令。

在其中一个实施例中,所述系统还包括:配置服务器;

所述配置服务器,用于根据所获取到的任务配置指令获取目标任务和目标参数,并将所述目标任务和所述目标参数发送至所述任务中心服务器;所述目标任务和所述目标参数与所述任务配置指令指定的目标任务标识对应;

所述任务中心服务器,还用于将所述目标任务部署到本地,并将所述目标参数和所述目标任务标识对应配置到所述配置文件中。

上述任务处理方法和系统,当在配置文件中查询到与当前系统时间一致的预设触发时间时,任务中心服务器确定用于执行与该预设触发时间对应的任务标识所对应的任务的执行线程,并通过该执行线程根据任务标识快速获取预配置的参数,以根据该参数触发相应的任务处理流程,保证了任务处理效率。当判定需要调用业务服务器时,任务中心服务器根据参数生成调用指令,并根据所生成的调用指令调用业务服务器,以通过该业务服务器执行相应的任务,进一步保证了任务处理效率。这样,对于需要调用业务服务器的任务通过调用业务服务器来执行,而对于不需要调用业务服务器的任务可直接通过执行线程执行,使得任务的处理不依赖于业务服务器,提高了任务处理的时间自由度,提高了任务处理效率。

附图说明

图1为一个实施例中任务处理方法的应用场景图;

图2为一个实施例中任务处理方法的流程示意图;

图3为另一个实施例中任务处理方法的流程示意图;

图4为一个实施例中任务处理系统的架构示意图;

图5为另一个实施例中任务处理系统的架构示意图;

图6为又一个实施例中任务处理系统的架构示意图。

具体实施方式

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

本申请提供的任务处理方法,可以应用于如图1所示的应用环境中。其中,任务中心服务器102通过网络与业务服务器104通过网络进行通信。任务中心服务器102在配置文件中查询与任务标识对应的预设触发时间,并当该预设触发时间与当前系统时间一致时,确定用于执行与任务标识对应的任务的执行线程,进而通过该执行线程获取与任务标识对应的参数。进一步地,当判定满足预设调用条件时,任务中心服务器102根据所获取到的参数生成调用指令并发送至业务服务器104,以通过业务服务器104根据所接收到的调用指令执行相应的任务。其中,任务中心服务器102和业务服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种任务处理方法,以该方法应用于图1中的任务中心服务器为例进行说明,包括以下步骤:

s202,任务中心服务器在配置文件中查询与任务标识对应的预设触发时间。

其中,任务标识用于唯一标识任务。任务可以是批量任务,批量任务是指在预设触发时间定时触发并执行的定时任务。可以理解的是,批量任务可以是指针对不同的入参重复执行相同处理流程的任务。举例说明,假设批量任务是向用户发送已还款提示短信,则可能需要向存在借贷关系、且已按时还款的多个用户分别发送相应的已还款提示短信,任务中心服务器在检测到该批量任务对应的预设触发时间与当前系统时间一致时,会触发相应的任务处理流程,以分别向该多个用户各自对应的用户终端分别发送相应的已还款提示短信。预设触发时间是指预先设定的用于针对任务标识触发相应的任务处理流程的时间。预设触发时间可以是具体的时间点,比如每个月的最后一天、每周的第一天、每天的早上九点或每个月的第一天的早上十点整。配置文件中对应于任务标识预配置有相应的预设触发时间。换而言之,配置文件中预配置有任务标识与预设触发时间之间的对应关系。

具体地,任务中心服务器在本地查询预配置的配置文件,并在该配置文件中查询与预配置的任务标识对应的预设触发时间。在一个实施例中,任务中心服务器按照预设周期轮询配置文件中与任务标识对应的预设触发时间。预设周期是任务中心服务器相邻两次轮询配置文件的时间间隔,可以根据实际情况自定义,比如1秒。

在一个实施例中,任务中心服务器通过触发器从配置文件中查询与任务标识对应的预设触发时间。触发器可以是部署于任务中心服务器的硬件模块,也可以是预先创建的用于按照预设周期轮询配置文件的轮询线程。

在一个实施例中,任务中心服务器上部署有任务中心系统,该任务中心系统可用于执行各实施例中提供的任务处理方法中,由任务中心服务器执行的相关步骤。

s204,当预设触发时间与当前系统时间一致时,任务中心服务器确定用于执行与任务标识对应的任务的执行线程。

其中,线程是能独立运行和独立调度的基本单位。线程是计算机程序中一个单一的顺序控制流程。线程是一个动态执行的过程,存在从创建到死亡的过程,即线程具有对应的生命周期。执行线程是可用于执行与任务标识对应的任务的线程。执行线程可以是已有的空闲线程,也可以是实时创建的线程。

具体地,任务中心服务器获取当前系统时间,并将所获取到的当前系统时间与从配置文件中查询到的、与任务标识对应的预设触发时间进行比较。在当前系统时间和所查询到的预设触发时间一致时,表明当前系统时间达到针对任务标识对应配置的预设触发时间,任务中心服务器则确定用于执行与该任务标识对应的任务的执行线程,以便于通过该执行线程执行相应的任务处理流程。

在一个实施例中,当判定当前系统时间与所查询到的预设触发时间一致时,任务中心服务器为相应任务标识分配用于执行该任务标识所对应的任务的执行线程。任务中心服务器分配给任务标识的执行线程可以是从预先创建的线程池中选取的已有空闲线程,也可以是根据该任务标识实时创建的线程。

在一个实施例中,当通过触发器在配置文件中查询到预设触发时间,并判定该预设触发时间与当前系统时间一致时,任务中心服务器通过触发器生成相应的任务处理流程触发指令。任务中心服务器根据该任务处理流程触发指令为相应的任务标识分配用于执行与该任务标识对应的任务的执行线程。

在一个实施例中,配置文件中预配置有多个任务标识和每个任务标识所对应的预设触发时间。任务中心服务器在配置文件中查询到该多个任务标识各自对应的预设触发时间,并将所查询到的预设触发时间分别与当前系统时间进行匹配。当存在与当前系统时间匹配成功的预设触发时间时,任务中心服务器为与当前系统时间匹配成功的预设触发时间所对应的任务标识分配用于执行该任务标识所对应的任务的执行线程。

s206,任务中心服务器通过执行线程获取与任务标识对应的参数。

其中,参数是执行线程在执行任务时所依据的入参。可以理解的是,执行线程执行任务的过程可以理解为该执行线程调用该任务所对应的任务程序的过程,参数则是执行线程在调用该任务程序时,传入该任务程序以实现相应的任务的入参。举例说明,假设任务标识对应的任务是计算利息,参数则是存在借贷关系的各个用户当前的借贷信息;假设任务是向用户发送已还款提示短信,参数则是存在借贷关系、且已按时还款的各用户所对应的还款信息。

具体地,当确定用于执行与任务标识对应的任务的执行线程后,任务中心服务器通过该执行线程查询与该任务标识对应的数据表标识,并根据该数据表标识在数据库中查询对应于任务标识预配置的参数。

在一个实施例中,任务中心服务器通过所确定的执行线程查询与任务标识对应的数据表标识,并根据该数据表标识从存储服务器中查询与该任务标识对应的参数。具体地,任务中心服务器通过执行线程在存储服务器中查询与数据表标识对应的数据表,并从该数据表中查询与任务标识对应的参数。

s208,当判定满足预设调用条件时,任务中心服务器根据参数生成相应的调用指令,并将调用指令发送到业务服务器。

其中,预设调用条件是预先设定的用于判定是否调用业务服务器执行相应任务的依据。预设调用条件可以是配置文件中预配置有与任务标识对应的调用标识,也可以是任务标识与预配置的任务标识列表相匹配,还可以是任务对应的任务程序中包括预设调用子程序。任务标识列表是由需调用业务服务器来执行的一个或多个任务各自对应的任务标识组成的集合。调用指令用于指示业务服务器查询并执行与指定的任务标识对应的任务,以完成相应的调用流程。

具体地,任务中心服务器根据任务标识在配置文件中查询相应的调用标识。当在配置文件中查询到与任务标识对应的调用标识时,任务中心服务器则判定该任务标识满足预设调用条件,根据对应于该任务标识所查询到的参数生成相应的调用指令,并将所生成的调用指令发送到业务服务器。

在一个实施例中,任务中心服务器将任务标识与预配置的任务标识列表进行匹配。当匹配成功时,表明该任务标识对应的任务需要调用业务服务器来执行,任务中心服务器则判定该任务标识满足预设调用条件。在一个实施例中,上述各实施例中,任务中心服务器可通过执行线程来判定任务标识是否满足预设调用条件,并在判定满足预设调用条件时,执行调用业务服务器的相关步骤。

在一个实施例中,任务中心服务器通过分配给任务标识的执行线程执行该任务标识所对应的任务程序,并在执行该任务程序的过程中确定是否需要调用预设调用子程序。若确定需要调用预设调用子程序,任务中心服务器判定该任务标识满足预设调用条件,则通过相应的执行线程根据所获取到的参数生成相应的调用指令,并将所生成的调用指令发送到业务服务器。

在一个实施例中,当判定满足预设调用条件时,任务中心服务器通过执行线程从配置文件中查询与任务标识对应的调用模块标识,根据该调用模块标识和所获取到的参数生成相应的调用指令,并将所生成的调用指令通过预设调用接口发送到业务服务器。

s210,业务服务器根据调用指令查询并执行任务标识对应的任务。

具体地,业务服务器接收到任务中心服务器所发送的调用指令时,根据所接收到的调用指令确定相应的任务标识,并根据该任务标识在本地查询相应的任务,进而执行所查询到的任务。

在一个实施例中,业务服务器根据调用指令确定任务标识后,为该任务标识分配用于执行该任务标识所对应的任务的线程,并通过所确定的线程查询并执行与该任务标识对应的任务。

在一个实施例中,业务服务器根据所接收到的调用指令获得相应的参数和调用模块标识,根据该调用模块标识确定待调用的模块,并通过待调用的模块根据所获取到的参数执行相应的任务。在一个实施例中,业务服务器根据所接收到的调用指令获取相应的任务标识,并根据任务标识从存储服务器中查询与该任务标识对应的参数。

举例说明,假设任务标识对应的任务是向用户发送已还款提示短信,任务中心服务器根据存在借贷关系、且已按时还款的各用户所对应的还款信息生成相应的调用指令,并将该调用指令发送至业务服务器。业务服务器根据调用指令获取存在借贷关系、且已按时还款的各用户所对应的还款信息,并根据各还款信息分别向相应的用户发送已还款提示短信。

上述任务处理方法,当在配置文件中查询到与当前系统时间一致的预设触发时间时,任务中心服务器确定用于执行与该预设触发时间对应的任务标识所对应的任务的执行线程,并通过该执行线程根据任务标识快速获取预配置的参数,以根据该参数触发相应的任务处理流程,保证了任务处理效率。当判定需要调用业务服务器时,任务中心服务器根据参数生成调用指令,并根据所生成的调用指令调用业务服务器,以通过该业务服务器执行相应的任务,进一步保证了任务处理效率。这样,对于需要调用业务服务器的任务通过调用业务服务器来执行,而对于不需要调用业务服务器的任务可直接通过执行线程执行,使得任务的处理不依赖于业务服务器,提高了任务处理的时间自由度,提高了任务处理效率。

在一个实施例中,上述任务处理方法还包括:当判定不满足预设调用条件时,任务中心服务器通过执行线程根据任务标识查询相应的任务;任务中心服务器通过执行线程根据参数执行查询到的任务。

具体地,当按照上述方式判定任务标识不满足预设调用条件时,任务中心服务器通过分配给该任务标识的执行线程在本地查询与该任务标识对应的任务,并根据对应于该任务标识所查询到的参数执行所查询到的任务。

在一个实施例中,当判定不满足预设调用条件时,任务中心服务器通过执行线程查询与任务标识对应的任务程序,并将对应于该任务标识所获取到的参数作为该任务程序的入参,根据该入参调用该任务程序,以执行相应的任务。

举例说明,假设任务标识对应的任务是计算利息,且判定该任务标识不满足预设调用条件,任务中心服务器则通过分配给该任务标识的执行线程,根据所获取到的参数执行与该任务标识对应的任务,即根据存在借贷关系的各个用户当前的借贷信息计算各用户对应的利息。

上述实施例中,任务标识不满足预设调用条件表明任务中心服务器无需调用业务服务器来执行该任务标识对应的任务,直接通过分配给该任务标识的执行线程即可执行该任务,提高了任务执行效率。进一步地,对于通过本地的执行线程即可执行的任务可根据实际情况预配置任意的预设触发时间,提高了任务执行的时间自由度,保证了任务能够被及时有效的执行。

在一个实施例中,任务中心服务器有多个;步骤s206包括:任务中心服务器通过自身的执行线程在自身的配置文件中,查询与任务标识对应的单服务器执行标识;当查询到单服务器执行标识时,任务中心服务器通过自身的执行线程,将自身的网络地址写入多个任务中心服务器共用的、且对应于任务标识的地址字段中;当在地址字段中写入自身的网络地址后达到预设时长时,任务中心服务器通过自身的执行线程,从地址字段中读取与任务标识对应的网络地址,并将自身的网络地址与从地址字段中读取的网络地址进行匹配;当匹配成功时,匹配成功的任务中心服务器通过自身的执行线程获取与任务标识对应的参数。

其中,单服务器执行标识用于标识相应任务由单个任务中心服务器来执行。单服务器执行标识是任务中心服务器用于判定相应任务是由单个还是多个任务中心服务器来执行的依据。地址字段是可供写入网络地址、并存在所写入的网络地址的字段。网络地址可以是任务中心服务器的ip地址(internetprotocoladdress,互联网协议地址)。网络地址与任务中心服务器存在一一对应的映射关系。预设时长是预先设定的时间长度,可以根据实际情况自定义,比如5秒。

具体地,任务中心服务器有多个,每个任务中心服务器分别预配置有相应的配置文件,配置文件中预配置与任务标识对应的预设触发时间。可以理解的是,在本实施例中,该多个任务中心服务器各自对应的配置文件中,预配置有相同的任务标识,且针对同一任务标识预配置有相同的配置参数,比如针对同一任务标识预配置有相同的预设触发时间。这样,该多个任务中心服务器可针对同一任务标识同时触发相应的任务处理流程。每个任务中心服务器分别在自身的配置文件中查询与任务标识对应的预设触发时间,并当所查询到的预设触发时间与当前系统时间一致时,分别确定用于执行该任务标识所对应的任务的执行线程。

进一步地,每个任务中心服务器分别通过自身的执行线程在自身的配置文件中,查询预设触发时间与当前系统时间一致的任务标识所对应的单服务器执行标识。当在自身的配置文件中查询到与任务标识对应的单服务器执行标识时,任务中心服务器通过自身的、且分配给该任务标识的执行线程,将自身的网络地址写入该多个任务中心服务器共用的、且与该任务标识对应的地址字段中。每个任务中心服务器在将自身的网络地址写入该地址字段后达到预设时长时,通过自身的执行线程分别从该地址字段中读取与任务标识对应的网络地址,并将从该地址字段中读取的网络地址与自身的网络地址进行匹配。当匹配成功时,匹配成功的任务中心服务器通过自身的执行线程获取与任务标识对应的参数。

在一个实施例中,每个任务中心服务器通过自身的执行线程将自身的网络地址覆盖式的写入该多个任务中心服务器共用的、且与任务标识对应的地址字段中。可以理解的是,覆盖式写入是指当前执行写入操作的任务中心服务器,在向地址字段中写入自身的网络地址时,以覆盖该地址字段中已写入的网络地址的方式将自身的网络地址写入该地址字段中。这样,该地址字段中仅存储最新写入的网络地址,历史写入的网络地址会被当前写入的网络地址覆盖。

在一个实施例中,任务中心服务器通过自身的执行线程将自身的网络地址成功写入地址字段中后,该执行写入操作的执行线程进入休眠等待状态,并统计休眠等待时长。当统计的休眠等待时长达到预设时长时,每个任务中心服务器通过自身的执行线程分别从地址字段中读取与任务标识对应的网络地址。进一步地,每个任务中心服务器分别将所读取到的网络地址与自身的网络地址进行比较。当自身的网络地址与所读取到的网络地址一致时,自身的网络地址与所读取到的网络地址一致的任务中心服务器,通过自身的执行线程获取与任务标识对应的参数,进而根据该参数执行相应的任务处理流程。

在一个实施例中,该多个任务中心服务器共用的、且与任务标识对应的地址字段预配置于存储服务器中。每个任务中心服务器通过自身的执行线程将自身的网络地址写入存储服务器中的该地址字段中。具体地,任务中心服务器可将任务标识和自身的网络地址发送至存储服务器。存储服务器根据所接收到的任务标识在本地查询与该任务标识对应的地址字段,并将对应接收到的网络地址覆盖式的写入所查询到的地址字段中。

上述实施例中,多个分布式部署的任务中心服务器中的每个任务中心服务器,通过自身的执行线程分别执行写入、停顿和读取的操作,从该多个任务中心服务器选取一个用于执行相应任务处理流程的任务中心服务器,实现了分布式部署下的自行调度,无需配置特定的调度服务器,节省了计算机资源。

在一个实施例中,上述任务处理方法还包括:当未查询到单服务器执行标识时,任务中心服务器通过自身的执行线程获取与任务标识对应的数据表标识,并锁定存储服务器中与数据表标识对应的数据表;任务中心服务器通过自身的执行线程从已锁定的数据表中获取预设数量的参数,并在数据表中更新已获取的参数所对应的参数状态;当从数据表中获取到预设数量的参数时,任务中心服务器通过自身的执行线程释放存储服务器中已锁定的数据表。

其中,数据表标识用于唯一标识数据表。数据表中预存储了执行任务时所需的参数。预设数量是预先设定的数量,可以根据实际情况自定义,比如30。参数状态用于表征参数的读取状态,比如参数状态为已读取时表征相应参数已经被任务中心服务器读取。

具体地,当未在自身的配置文件中未查询到与任务标识对应的单服务器执行标识时,表明该任务标识对应的任务由该多个任务中心服务器并行的执行。该多个任务中心服务器中的每个任务中心服务器,分别通过自身的执行线程获取与任务标识对应的数据表标识,并按照运行速度的快慢顺序依次锁定存储服务器中与该数据表标识对应的数据表。可以理解的是,当数据表已锁定时,只有执行该锁定操作的任务中心服务器才能从该已锁定的数据表中读取参数,而其他任务中心服务器则不能从该数据表中读取参数。

进一步地,当前成功锁定数据表的任务中心服务器通过自身的执行线程从已锁定的数据表中获取预设数量的参数,并在数据表中更新该已获取的预设数量的参数所对应的参数状态。当从已锁定的数据表中成功获取到预设数量的参数时,该当前成功锁定数据表的任务中心服务器通过自身的执行线程,释放存储服务器中与任务标识对应、且已锁定的数据表。在当前成功锁定数据表的任务中心服务器通过自身的执行线程成功释放已锁定的数据表后,该多个任务中心服务器中尚未从该数据表中获取与任务标识对应的参数的任务中心服务器,按照运行速度的快慢顺序依次锁定该数据表,并针对已锁定的数据表按照上述方式执行获取参数和释放该数据表的相关步骤,直至该多个任务中心服务器中的每个任务中心服务器按照上述方式依次从该数据表中获取到与任务标识对应的参数时,停止上述迭代过程。

在一个实施例中,每个任务中心服务器通过自身的执行线程根据对应于任务标识所获取到的数据表标识分别生成相应的数据表锁定指令,并将所生成的数据表锁定指令发送至存储服务器。对于所获取到的多个数据表锁定指令,存储服务器按照获取各数据表锁定指令的先后顺序,依次根据每个数据表锁定指令查询并锁定与相应数据表标识对应的数据表。当存储服务器根据数据表锁定指令成功锁定数据表时,成功锁定数据表的该数据表锁定指令所对应的任务中心服务器能够从已锁定的数据表中获取预设数量的参数。当成功获取到预设数量的参数时,当前执行参数获取操作的任务中心服务器根据数据表标识生成相应的数据表释放指令,并将所生成的数据表释放指令发送至存储服务器。存储服务器根据所接收到的数据表释放指令释放已锁定的数据表,并从当前未执行参数获取操作的任务中心服务器所对应的数据表锁定指令中,按照获取的先后顺序依次执行上述相关操作,直至每个任务中心服务器均依次执行参数获取操作时,停止上述迭代过程。

上述实施例中,当判定通过分布式部署的多个任务中心服务器并行执行同一任务时,按照锁定数据表、获取参数、释放数据表的方式依次从数据表中获取参数,并根据所获取到的参数并行的执行任务,提高了任务执行效率,且能够有效避免针对同一参数重复执行任务的问题,。

在一个实施例中,上述任务处理方法还包括:当未查询到单服务器执行标识时,任务中心服务器通过自身的执行线程向管理服务器发送令牌获取指令,并接收管理服务器对应反馈的令牌;任务中心服务器通过自身的执行线程根据令牌从存储服务器中获取与任务标识对应的预设数量的参数;当获取到预设数量的参数时,任务中心服务器通过自身的执行线程向管理服务器发送令牌释放指令。

其中,令牌获取指令是用于触发令牌获取操作的指令。令牌是任务中心服务器从存储服务器中获取与任务标识对应的参数的凭证。令牌释放指令是用于触发令牌释放操作的指令。

具体地,当未在自身的配置文件中未查询到与任务标识对应的单服务器执行标识时,表明该任务标识对应的任务由该多个任务中心服务器并行的执行。该多个任务中心服务器中的每个任务中心服务器,通过自身的执行线程分别向管理服务器发送令牌获取指令。管理服务器按照接收令牌获取指令的先后顺序,依次向各令牌获取指令所对应的任务中心服务器分发令牌。可以理解的是,当根据令牌获取指令将令牌分发给该多个任务中心服务器中的一个任务中心服务器时,管理服务器不会再给其他的任务中心服务器分发令牌,当该持有令牌的任务中心服务器释放所持有的令牌时,即管理服务器回收已分发的令牌时,管理服务器针对尚未分发令牌的任务中心服务器,按照接收相应令牌获取指令的先后顺序继续执行上述令牌分发操作,直至每个任务中心服务器均获取到令牌时停止上述令牌分发流程。

进一步地,当前持有令牌的任务中心服务器通过自身的执行线程,根据所持有的令牌从存储服务器中获取与任务标识对应的预设数量的参数。当获取到的预设数量的参数时,该当前持有令牌的任务中心服务器通过自身的执行线程,向管理服务器发送令牌释放指令。管理服务器根据所接收到的令牌释放指令回收分发给相应任务中心服务器的令牌。

在一个实施例中,管理服务器根据所接收到的令牌获取指令执行键值对写操作,以在本地写入预设键值对。当在本地成功写入预设键值对时,管理服务器向与该令牌获取指令对应的任务中心服务器反馈相应的令牌。当接收到与该令牌获取指令对应的令牌释放指令时,管理服务器根据所接收到的令牌释放指令删除本地已写入的预设键值对。

在一个实施例中,管理服务器上部署有redis数据库,通过该redis数据库执行分发与释放令牌的相关步骤。

上述实施例中,当通过多个任务中心服务器并行执行同一任务时,借助于管理服务器来控制令牌的分发,以确保每个任务中心服务器从数据表中获取到的参数是互不重复的参数,有效避免了针对同一参数重复执行任务的问题,提高了任务执行的准确性。

在一个实施例中,上述任务处理方法还包括:任务中心服务器接收配置服务器根据所获取到的任务配置指令获取并发送的目标任务和目标参数;目标任务和目标参数与任务配置指令指定的目标任务标识对应;任务中心服务器将目标任务部署到本地,并将目标参数和目标任务标识对应配置到配置文件中。

其中,任务配置指令是用于触发任务配置操作的指令。具体地,配置服务器获取到任务配置指令时,解析所获取到的任务配置指令获得相应的目标任务标识,根据所获得到的任务标识获取相应的目标任务和目标参数,并将所获取到的目标任务和目标参数,以及相应的目标任务标识发送到任务中心服务器。任务中心服务器将所接收到的目标任务部署到本地,以便于通过分配给相应目标任务标识的执行线程执行该目标任务时,能够从本地快速查询并执行该任务,提高了任务处理效率。进一步地,任务中心服务器将所获取到的目标参数和相应的目标任务标识对应配置到配置文件中,以便于通过执行线程执行相应的目标任务时能够根据该目标任务标识快速获取相应的参数。

在一个实施例中,配置服务器获取到系统配置指令时,解析所获取到的系统配置指令获得相应的系统标识,根据所获取到的系统标识获取相应的系统程序,并将所获取到的系统程序发送到任务中心服务器。任务中心服务器将所接收到的系统程序部署在本地,获得相应的任务中心系统,以便于通过该任务中心系统执行上述任务处理流程中的相关步骤。

在一个实施例中,配置服务器将所获取到的系统程序发送至多个任务中心服务器,以便于在该多个任务中心服务器上分别部署相应的任务中心系统,从而实现任务中心系统的分布式部署。

在一个实施例中,配置服务器可根据任务配置指令从配置管理服务器中获取相应的目标任务和目标参数。类似地,配置服务器可根据系统配置指令从配置管理服务器中获取相应的系统程序。

上述实施例中,借助于配置服务器在任务中心服务器本地预配置与目标任务标识对应的目标任务和目标参数,以便于在任务中心服务器在执行该目标任务时,能够快速定位该目标任务和相应的目标参数,提高了任务处理效率。

如图3所示,在一个实施例中,提供了一种任务处理方法,该方法具体包括以下步骤:

s302,任务中心服务器在配置文件中查询与任务标识对应的预设触发时间;任务中心服务器有多个。

s304,当预设触发时间与当前系统时间一致时,任务中心服务器确定用于执行与任务标识对应的任务的执行线程。

s306,任务中心服务器通过自身的执行线程在自身的配置文件中,查询与任务标识对应的单服务器执行标识。

s308,当查询到单服务器执行标识时,任务中心服务器通过自身的执行线程,将自身的网络地址写入多个任务中心服务器共用的、且对应于任务标识的地址字段中。

s310,当在地址字段中写入自身的网络地址后达到预设时长时,任务中心服务器通过自身的执行线程,从地址字段中读取与任务标识对应的网络地址,并将自身的网络地址与从地址字段中读取的网络地址进行匹配。

s312,当匹配成功时,匹配成功的任务中心服务器通过自身的执行线程获取与任务标识对应的参数。

s314,当未查询到单服务器执行标识时,任务中心服务器通过自身的执行线程获取与任务标识对应的数据表标识,并锁定存储服务器中与数据表标识对应的数据表。

s316,任务中心服务器通过自身的执行线程从已锁定的数据表中获取预设数量的参数,并在数据表中更新已获取的参数所对应的参数状态。

s318,当从数据表中获取到预设数量的参数时,任务中心服务器通过自身的执行线程释放存储服务器中已锁定的数据表。

s320,当未查询到单服务器执行标识时,任务中心服务器通过自身的执行线程向管理服务器发送令牌获取指令,并接收管理服务器对应反馈的令牌。

s322,任务中心服务器通过自身的执行线程根据令牌从存储服务器中获取与任务标识对应的预设数量的参数。

s324,当获取到预设数量的参数时,任务中心服务器通过自身的执行线程向管理服务器发送令牌释放指令。

s326,当判定满足预设调用条件时,任务中心服务器根据参数生成相应的调用指令,并将调用指令发送到业务服务器。

s328,业务服务器根据调用指令查询并执行任务标识对应的任务。

s330,当判定不满足预设调用条件时,任务中心服务器通过执行线程根据任务标识查询相应的任务。

s332,任务中心服务器通过执行线程根据参数执行查询到的任务。

上述实施例中,分布式部署有多个可用于执行同一任务的任务中心服务器,提高了任务处理效率。当满足预设调用条件时,任务中心服务器通过调用业务服务器来执行任务,由此对于业务服务器能够执行的任务,任务中心服务器无需再部署相应的功能模块来执行该任务,节省了研发和部署成本。通过预配置的单服务器标识来配置相应任务是由分布式部署的任务中心服务器中的一个还是多个来执行,并针对不同的任务执行情况提供了相应的任务处理流程,在保证任务能够被有效执行的基础上,提高了任务处理效率。

应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图1所示,提供了一种任务处理系统100,包括:任务中心服务器102和业务服务器104;

任务中心服务器102,用于在配置文件中查询与任务标识对应的预设触发时间;当预设触发时间与当前系统时间一致时,确定用于执行与任务标识对应的任务的执行线程;通过执行线程获取与任务标识对应的参数;当判定满足预设调用条件时,根据参数生成相应的调用指令,并将调用指令发送到业务服务器104;

业务服务器104,用于根据调用指令查询并执行任务标识对应的任务。

在一个实施例中,任务中心服务器102,还用于当判定不满足预设调用条件时,通过执行线程根据任务标识查询相应的任务;通过执行线程根据参数执行查询到的任务。

在一个实施例中,任务中心服务器102有多个;

任务中心服务器102,还用于通过自身的执行线程在自身的配置文件中,查询与任务标识对应的单服务器执行标识;当查询到单服务器执行标识时,通过自身的执行线程,将自身的网络地址写入多个任务中心服务器102共用的、且对应于任务标识的地址字段中;并当在地址字段中写入自身的网络地址后达到预设时长时,通过自身的执行线程,从地址字段中读取与任务标识对应的网络地址,并将自身的网络地址与从地址字段中读取的网络地址进行匹配;当匹配成功时,匹配成功的任务中心服务器102,还用于通过自身的执行线程获取与任务标识对应的参数。

如图4所示,在一个实施例中,任务处理系统100还包括:存储服务器106;

任务中心服务器102,还用于当未查询到单服务器执行标识时,通过自身的执行线程获取与任务标识对应的数据表标识,并锁定存储服务器106中与数据表标识对应的数据表;通过自身的执行线程从已锁定的数据表中获取预设数量的参数,并在数据表中更新已获取的参数所对应的参数状态;当从数据表中获取到预设数量的参数时,通过自身的执行线程释放存储服务器106中已锁定的数据表。

如图5所示,在一个实施例中,任务处理系统100还包括:存储服务器106和管理服务器108;

任务中心服务器102,还用于当未查询到单服务器执行标识时,通过自身的执行线程向管理服务器108发送令牌获取指令;

管理服务器108,用于针对所接收到的令牌获取指令向任务中心服务器102反馈相应的令牌;

任务中心服务器102,还用于通过自身的执行线程根据令牌从存储服务器106中获取与任务标识对应的预设数量的参数;当获取到预设数量的参数时,通过自身的执行线程向管理服务器108发送令牌释放指令。

如图6所示,在一个实施例中,任务处理系统100还包括:配置服务器110;

配置服务器110,用于根据所获取到的任务配置指令获取目标任务和目标参数,并将目标任务和目标参数发送至任务中心服务器102;目标任务和目标参数与任务配置指令指定的目标任务标识对应;

任务中心服务器102,还用于将目标任务部署到本地,并将目标参数和目标任务标识对应配置到配置文件中。

关于任务处理系统的具体限定可以参见上文中对于任务处理方法的限定,在此不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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