应用于分布式作业引擎的分布式作业方法、系统以及装置与流程

文档序号:18739739发布日期:2019-09-21 01:38阅读:257来源:国知局
应用于分布式作业引擎的分布式作业方法、系统以及装置与流程

本申请实施例涉及计算机技术领域,具体涉及一种应用于分布式作业引擎的分布式作业方法。



背景技术:

分布式作业引擎是支持分布式处理作业的软件系统,可以供用户定义作业、发起作业及查询作业执行结果。目前主流的分布式作业引擎实现包含两个核心组件:任务分发器和任务执行器,任务分发器是全局唯一的。这种设计的假设前提是任务分发器不会成为系统性能瓶颈,可以大幅简化实现难度。在这种设计的系统中部署多个任务分发器的话,任务分发器并不能感知到其它分发器的存在,因此可能会分发重复的任务。

因此任务分发器不具备单机容错性。这导致系统在任务分发器出现故障时,无法正常处理用户发起的任务。因此系统整体可用性较低。



技术实现要素:

本申请实施例提出了应用于分布式作业引擎的分布式作业方法和系统。

第一方面,本申请实施例提供了一种应用于分布式作业引擎的分布式作业方法,其中,所述分布式作业引擎包括:数据库和任务执行器,所述方法包括:响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行所述新任务,并将所述新任务的执行结果写入所述数据库。

在一些实施例中,所述响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记之前,所述方法还包括:检测所述数据库中的任务是否具有用于指示执行该任务的任务执行器的标识的分配标记;响应于确定所述数据库中的任务不具有用于指示执行该任务的任务执行器的标识的分配标记,将该任务确定为新任务。

在一些实施例中,所述响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记,包括:响应于检测到数据库接收到新任务,将用于指示执行所述新任务的任务执行器的标识的分配标记写入所述数据库任务列表中;所述响应于确定添加成功,执行所述新任务,并将所述新任务的执行结果写入所述数据库,包括:响应于数据库中所述分配标记的写入记录所指示的分配标记写入次数为1,确定添加成功;执行所述新任务,并将所述新任务的执行结果写入所述数据库。

第二方面,本申请实施例提供了一种应用于分布式作业引擎的分布式作业系统,包括:服务器,用于响应于接收到新任务下发指令,下发所述新任务下发指令对应的新任务,并将所述新任务写入数据库;任务执行器,用于响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行所述新任务,并将所述新任务的执行结果写入所述数据库;数据库,用于存储所述新任务。

在一些实施例中,任务执行器,还用于检测所述数据库中的任务是否具有用于指示执行该任务的任务执行器的标识的分配标记;响应于确定所述数据库中的任务不具有用于指示执行该任务的任务执行器的标识的分配标记,将该任务确定为新任务。

在一些实施例中,多个任务执行器通过选举产生一个Leader执行器;所述Leader执行器,用于响应于接收到所述Leader执行器之外的任务执行器的获取任务请求,检测数据库是否存在新任务;响应于检测到所述数据库存在新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记。

在一些实施例中,任务执行器,用于响应于检测到数据库接收到新任务,将用于指示执行所述新任务的任务执行器的标识的分配标记写入所述数据库任务列表中;响应于数据库中所述分配标记的写入记录所指示的分配标记写入次数为1,确定添加成功;执行所述新任务,并将所述新任务的执行结果写入所述数据库。

在一些实施例中,响应于数据库中所述添加记录的写入记录所指示的分配标记写入次数大于1,所述任务执行器不执行所述新任务。

第三方面,本申请实施例提供了一种应用于分布式作业引擎的分布式作业装置,其中,所述分布式作业引擎包括:数据库和任务执行器,所述装置包括:标记添加单元,被配置为响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记;任务执行单元,被配置为响应于确定添加成功,执行所述新任务,并将所述新任务的执行结果写入所述数据库。

在一些实施例中,新任务确定单元,还被配置为向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记之前,检测所述数据库中的任务是否具有用于指示执行该任务的任务执行器的标识的分配标记;响应于确定所述数据库中的任务不具有用于指示执行该任务的任务执行器的标识的分配标记,将该任务确定为新任务。

在一些实施例中,标记添加单元,还被配置为响应于检测到数据库接收到新任务,将用于指示执行所述新任务的任务执行器的标识的分配标记写入所述数据库任务列表中;任务执行单元,还被配置为响应于数据库中所述分配标记的写入记录所指示的分配标记写入次数为1,确定添加成功;执行所述新任务,并将所述新任务的执行结果写入所述数据库。

第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如第一方面任一实现方式描述的方法。

第五方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面任一实现方式描述的方法。

本申请实施例提供的应用于分布式作业引擎的分布式作业方法和系统,任务执行器用于响应于检测到数据库接收到新任务,向新任务添加用于指示执行新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行新任务。本公开提供的应用于分布式作业引擎的分布式作业的技术方案保证了在同一时刻同一个任务不会被重复添加分配标记,因此任务执行器可以多副本部署,能大幅提高系统整体可用性。可以将系统的任务执行器部署在多个机房,实现跨机房容灾。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请的一个实施例可以应用于其中的示例性系统架构图;

图2是根据本申请的分布式作业方法的一个实施例的流程图;

图3A~3C是根据本实施例的分布式作业方法的应用场景的示意图;

图4是根据本申请的分布式作业方法的又一个实施例的流程图;

图5是根据本申请的分布式作业系统的一个实施例的结构图;

图6是根据本申请的分布式作业装置的一个实施例的结构图;

图7是适于用来实现本申请实施例的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

在本申请一个典型的配置中,任务执行器、服务器均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。

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

图1示出了可以应用本申请的信息处理系统的示例性架构100。

如图1所示,系统架构100可以包括任务执行器101、102、103,网络104、数据库105和服务器106。网络104用以在任务执行器101、102、103、数据库105和服务器106之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

任务执行器101、102、103可以是支持网络连接从而提供各种网络服务的硬件设备或软件。当任务执行器101、102、103为硬件时,其可以是支持信息交互或热点连接功能的各种电子设备。这时,作为硬件设备,其可以实现成多个设备组成的分布式设备群,也可以实现成单个设备。当设备为软件时,可以安装在上述所列举的电子设备中。这时,作为软件,其可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。

服务器106可以是提供各种服务的服务器,例如服务器106可以是下发任务的API(Application Programming Interface,应用程序编程接口)服务器。本实施例中,数据库105,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。本实施例中,数据库可以但不限于是关系型数据库和非关系型数据库。数据库通过数据库管理系统管理。数据库管理系统(DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库105中存储任务的初始相关信息,任务执行过程中不同阶段的相关信息以及日志文件,任务的相关信息包括任务的ID、执行结果、分配标记等信息。

服务器106用于响应于接收到新任务下发指令,下发新任务下发指令对应的新任务,并将新任务写入数据库105;任务执行器101、102、103,用于响应于检测到数据库接收到新任务,向新任务添加用于指示执行新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行新任务,并将新任务的执行结果写入数据库105。

应该理解,图1中的任务执行器和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的任务执行器、数据库和服务器。

继续参考图2,示出了根据本申请的应用于分布式作业引擎的分布式作业方法的一个实施例的流程200,该分布式作业引擎包括:数据库和任务执行器,该分布式作业方法应用于任务执行器,包括以下步骤:

步骤201:响应于检测到数据库接收到新任务,向新任务添加用于指示执行新任务的任务执行器的标识的分配标记。

本实施例中,新任务例如可以为API服务器下发的未被执行的任务。新任务中携带对应的任务脚本和执行任务脚本所需的输入参数,并被存储至数据库种的任务列表中。任务列表中记载任务的相关信息,包括任务的ID、分配标记、执行结果等信息。

本实施例中,分配标记可以是计算机语言可以识别的用于区分任务执行器的任何标识的分配标记,包括但不限于字符串、数字等信息。

数据库筛选出任务列表中分配标记列为空的任务,将其确定为新任务,数据库的筛选操作可以是实时操作也可以按照预设时间间隔进行筛选。然后任务执行器向该新任务添加用于指示执行该新任务的标识的分配标记。该分配标记用于标识该新任务被该任务执行器抢占,防止其他任务执行器重复抢占该新任务,造成多个任务执行器重复执行同一个新任务的情况发生。

在本实施例的一些可选实施方式中,任务执行器可以通过数据库事务向新任务添加用于指示执行新任务的任务执行器的标识的分配标记。其中,数据库事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。它的存在包含有以下两个目的:为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法;当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。

当事务被提交给了DBMS(数据库管理系统),则DBMS(数据库管理系统)需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。

任务执行器通过数据库事务向新任务添加用于指示执行新任务的任务执行器的标识的分配标记的具体过程如下:

响应于检测到数据库筛选出新任务,任务执行器将用于指示执行新任务的任务执行器的标识的分配标记写入数据库任务列表中;响应于数据库中分配标记的写入记录所指示的分配标记写入次数为1,任务执行器确定添加成功分配标记;任务执行器执行新任务,并将新任务的执行结果写入数据库。响应于数据库中添加记录的写入记录所指示的分配标记写入次数大于1,任务执行器不执行新任务。

保证数据库中分配标记的写入记录所指示的分配标记写入次数为1,才能确保同一时间只有一个任务执行器抢占任务成功,避免同一时间不同的任务执行器抢占同一个新任务的情况发生。

步骤202:响应于确定添加成功,执行新任务,并将新任务的执行结果写入数据库。

本实施例中,新任务中携带相关的执行脚本和输入参数信息。任务执行器确定添加成功分配标记后,可根据新任务中携带的执行脚本和输入参数信息执行该任务,并将该任务的执行结果写入数据库中的任务列表中。

本实施例中,现有技术中的任务分发器下沉为任务执行器的一部分,下沉后的任务分发器体现在任务的抢占机制,即任务执行器主动向新任务添加用于指示执行新任务的任务执行器的标识的分配标记。由原先的被动分发任务改为主动抢占任务,所有任务执行器共同承担任务的分发职责。

本实施例中,若执行主体未成功地向新任务添加分配标记,则可以如前所述,继续向数据库接收到的其他新任务添加用于指示执行新任务的任务执行器的标识的分配标记。

图3A~图3C示意性地示出了根据本实施例的分布式作业方法的一个应用场景。用户通过API服务器下发一个监控应用服务器A运行功耗的新任务1,API服务器将该新任务1写入数据库中的任务列表中。任务列表中记载新任务的相关信息,包括:记载任务ID的任务ID列301、记载分配标记的分配标记列302、记载执行结果相关信息的执行结果列303等信息。数据库对任务列表中分配标记列为空的任务进行筛选,从而筛选出任务1,将其确定为新任务,如图3A所示。然后任务执行器a向该新任务添加分配标记“a*”,如图3B所示。该分配标记“a*”用于标识该新任务1被该任务执行器a抢占,其他任务执行器不得再进行抢占。响应于确定添加成功,任务执行器a执行新任务a,即监控应用服务器A运行功耗,并将监控结果写入数据库的任务列表中,如图3C所示。

本公开的上述实施例提供的方法,任务执行器检测任务列表中分配标记列是否为空,来确定是否为新任务,然后向该新任务添加用于指示执行该新任务的标识的分配标记。该分配标记用于标识该新任务被该任务执行器抢占,防止其他任务执行器重复抢占该新任务,造成多个任务执行器重复执行同一个新任务的情况发生。

继续参考图4,示出了根据本申请的应用于分布式作业引擎的分布式作业方法的另一个实施例的示意性流程400,该分布式作业引擎包括:数据库和任务执行器,该分布式作业方法应用于任务执行器,包括以下步骤:

步骤401:检测数据库中的任务是否具有用于指示执行该任务的任务执行器的标识的分配标记。

本实施例中,分配标记可以是计算机语言可以识别的用于区分任务执行器的任何标识,包括但不限于字符串、数字等信息。该分配标记与任务执行器一一对应,不同的任务执行器具有不同的分配标记。

在本实施例的一些可选实施方式中,多个任务执行器通过选举产生一个Leader执行器,该Leader执行器与其他的任务执行器通信联系。接收其他任务执行器任务获取请求;响应于接收到其他任务执行器的获取任务请求,Leader执行器检测数据库中的任务是否具有用于指示执行该任务的任务执行器的标识的分配标记。

Leader执行器的具体选举方式可以但不限于采用raft算法,采用raft算法的选举方式,同一时间只能选举出唯一一个Leader执行器。

本实施方式中,Raft算法分为两个阶段,首先是选举过程,然后在选举出来的Leader执行器带领Follower执行器进行正常操作。执行Raft算法过程中,每个任务执行器都会扮演如下角色之一:

Leader执行器:处理所有客户端交互,日志复制等,一般情况下一次只选举一个Leader执行器;Follower执行器:与Leader执行器通信,并根据Leader执行器的指令而动作;Candidate执行器:Leader执行器的候选者。

选举过程中,Candidate执行器向Follower执行器发出要求选举自己为Leader执行器的请求;其中,任何一个任务执行器都可以成为Candidate执行器。当超过N/2个Follower执行器同意Candidate执行器的请求后,该Candidate执行器成为Leader执行器。

步骤402:响应于确定数据库中的任务不具有用于指示执行该任务的任务执行器的标识的分配标记,将该任务确定为新任务。

本实施例中,Leader执行器响应于确定数据库中的任务不具有用于指示执行该任务的任务执行器的标识的分配标记,将该任务确定为新任务,并将该确定结果反馈给发出该任务获取请求的任务执行器。

步骤403:响应于检测到数据库接收到新任务,向新任务添加用于指示执行新任务的任务执行器的标识的分配标记。

在本实施例中,Leader执行器响应于确定数据库中存在新任务,并根据其他任务执行器的任务获取请求,向该新任务添加用于指示执行该新任务的任务执行器的标识的分配标记。分配标记用于标识该任务被该发出任务获取请求的任务执行器所抢占,其他任务执行器不得再添加分配标记。

步骤404:响应于确定添加成功,执行新任务,并将新任务的执行结果写入数据库。

本实施例中,Leader执行器响应于确定添加成功分配标记,向该分配标记对应的任务执行器反馈成功添加分配标记,该任务执行器根据新任务携带的执行脚本和输入参数等信息执行该新任务,并将执行结果写入数据库。

本实施例中,响应于确定添加成功分配标记,Leader执行器继续如前所述,根据其他任务执行器的任务获取请求向其他新任务添加分配标记。

继续参考图5,示出了根据本申请的应用于分布式作业引擎的分布式作业系统的一个实施例500,该分布式作业系统包括:服务器501、数据库502和任务执行器503、504、505。

本实施例中,服务器可以是API(应用程序编程接口)服务器,用于响应于接收到新任务下发指令,下发新任务下发指令对应的新任务,并将新任务写入数据库;任务执行器,用于响应于检测到数据库接收到新任务,向新任务添加用于指示执行新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行新任务,并将新任务的执行结果写入数据库,数据库用于存储任务的相关信息,包括:任务ID、执行结果、分配标记、执行脚本和输入参数等信息。

在现有分布式作业系统中,用户通过API服务器下发任务的执行脚本和输入参数,由API服务器写入数据库中;任务分发器从数据库中获取到任务的执行脚本和输入参数后,将任务分解成子任务,并且将子任务记录在数据库中;任务分发器将子任务直接(通过RPC调用)或间接(通过中间件)分发给任务执行器执行;任务执行器将执行结果写入至数据库中。其中,任务分发器是全局唯一的,因此不采用分布式一致性协议。这种现有分布式作业系统设计的假设前提是分发器不会成为系统性能瓶颈,如此可以大幅简化实现难度。但在这种设计的系统中部署多个任务分发器的话,任务分发器并不能感知到其它分发器的存在,因此可能会分发重复的任务。

本实施例中,现有技术中的任务分发器下沉为任务执行器的一部分,下沉后的任务分发器体现在任务的抢占机制,即任务执行器主动向新任务添加用于指示执行新任务的任务执行器的标识的分配标记。由原先的被动分发任务改为主动抢占任务,所有任务执行器共同承担任务的分发职责。

为了提高任务执行效率,同一个任务执行器可向多个新任务添加用于指示执行新任务的该任务执行器的标识的分配标记,待成功添加分配标记后,依序或同时执行已成功添加分配标记的多个新任务。

本实施例中,任务执行器向新任务添加用于指示执行新任务的任务执行器的标识的分配标记,与步骤201、步骤401中记载的方法一致,在此不再赘述。

继续参考图6,作为对上述各图所示方法的实现,本公开提供了一种分布式作业装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图6所示,分布式作业装置包括:标记添加单元601、任务执行单元602。其中,标记添加单元601被配置为响应于检测到数据库接收到新任务,向新任务添加用于指示执行新任务的任务执行器的标识的分配标记;任务执行单元602被配置为响应于确定添加成功,执行新任务,并将新任务的执行结果写入数据库。

本实施例中,标记添加单元601还被配置为向新任务添加用于指示执行新任务的任务执行器的标识的分配标记之前,检测数据库中的任务是否具有用于指示执行该任务的任务执行器的标识的分配标记;响应于确定数据库中的任务不具有用于指示执行该任务的任务执行器的标识的分配标记,将该任务确定为新任务。

本实施例中,标记添加单元601还被配置为响应于检测到数据库接收到新任务,将用于指示执行新任务的任务执行器的标识的分配标记写入数据库任务列表中;任务执行单元602还被配置为响应于数据库中分配标记的写入记录所指示的分配标记写入次数为1,确定添加成功;执行新任务,并将新任务的执行结果写入数据库。

下面参考图7,其示出了适于用来实现本申请实施例的设备(例如图1所示的设备101、102、103、105、106)的计算机系统700的结构示意图。图7示出的设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM703中,还存储有系统700操作所需的各种程序和数据。CPU701、ROM702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的方法中限定的上述功能。

需要说明的是,本申请的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,程序设计语言包括面向目标的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器,包括标记添加单元和任务执行单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,标记添加单元还可以被描述为“响应于检测到数据库接收到新任务,向所述新任务添加用于指示执行所述新任务的任务执行器的标识的分配标记的单元”。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该设备:响应于检测到数据库接收到新任务,向新任务添加用于指示执行新任务的任务执行器的标识的分配标记;响应于确定添加成功,执行新任务,并将新任务的执行结果写入数据库。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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