掌桥专利:专业的专利平台
掌桥专利
首页

任务调度方法、装置及电子设备

文献发布时间:2023-06-19 11:22:42


任务调度方法、装置及电子设备

技术领域

本申请涉及任务调度技术,尤其涉及一种任务调度方法、装置及电子设备,属于后台任务调度技术领域。

背景技术

随着云计算的发展,越来越多的本地应用被网页应用替代,网页应用具有很多本地应用无法比拟的特点,例如,网页应用不占用本地的存储空间、网页应用不需要安装以及网页应用可以方便的在不同设备之间切换。

网页应用主要依靠云端的服务器完成任务的处理,当用户需要网页应用执行一个操作时,可以点击网页中对应的选项,该点击操作将触发对应的执行指令,客户端可以将该执行指令发送至服务器,服务器可以根据该执行指令执行对应的任务,任务执行结束后再返回执行结果至客户端。

为了实现用户更加高级和复杂的需求,单个选项对应的任务数量越来越多,且单个任务也越来越复杂。因而,服务器在执行多任务时需要花费更多的时间,对应的,网页向用户反馈执行结果的时间会比较长。而对用户而言,如果在点击选项后网页长时间没有反馈,会让用户误以为网页卡死或选项未触发成功等,从而影响用户的使用体验。

发明内容

有鉴于此,本申请提供了一种任务调度方法、装置及电子设备,用于及时反馈网页应用的处理状态,提高用户的使用体验。

为了实现上述目的,第一方面,本申请实施例提供一种任务调度方法,应用于服务器,包括:

根据执行指令确定待执行的多个任务,执行指令为用户在客户端的网页应用中触发的;

执行任务,并确定各任务的执行状态;

根据各任务的执行状态,向客户端通知执行指令的执行进度。

可选的,执行任务,包括:

对于每个任务,根据任务与其他任务之间的执行关系,构建任务对应的任务模型,任务模型包括任务和任务的树形结构,树形结构包括任务的父子关系和兄弟关系;

根据各任务模型的树形结构,依次执行各任务模型中的任务。

可选的,根据各任务模型的树形结构,依次执行各任务模型中的任务,包括:

根据各任务模型的树形结构,确定任务队列,任务队列包括任务模型的执行顺序和执行状态;

对于每个任务模型,根据执行顺序,执行任务模型中的任务,并更新任务模型的执行状态;

对应的,确定各任务的执行状态,包括:

根据任务队列中各任务模型的执行状态,确定各任务的执行状态。

可选的,根据各任务的执行状态,向客户端通知执行指令的执行进度,包括:

根据各任务的执行状态确定执行进度;

向客户端发送执行进度,以供客户端展示执行进度。

可选的,执行任务之后,该方法还包括:

在任务执行失败的情况下,回滚所有已执行的任务。

可选的,在任务执行失败的情况下,回滚所有已执行的任务,包括:

若任务执行失败,则再次执行任务;

若任务再次执行失败,则回滚所有已执行的任务。

可选的,执行状态包括未执行完、执行成功或执行失败;

当各任务的执行状态均为执行成功时,执行进度包括执行指令执行成功的指示信息;

当存在至少一个任务的执行状态为未执行完时,执行进度包括执行成功的任务数量占总任务数量的比例信息;

当存在至少一个任务的执行状态为执行失败时,执行进度包括执行指令执行失败的指示信息。

第二方面,本申请实施例提供一种任务调度装置,应用于服务器,包括:

执行模块,用于根据执行指令确定待执行的多个任务,执行指令为用户在客户端的网页应用中触发的,执行任务,并确定各任务的执行状态;

通知模块,用于根据各任务的执行状态,向客户端通知执行指令的执行进度。

可选的,执行模块具体用于:

对于每个任务,根据任务与其他任务之间的执行关系,构建任务对应的任务模型,任务模型包括任务和任务的树形结构,树形结构包括任务的父子关系和兄弟关系;

根据各任务模型的树形结构,依次执行各任务模型中的任务。

可选的,执行模块具体用于:

根据各任务模型的树形结构,确定任务队列,任务队列包括任务模型的执行顺序和执行状态;

对于每个任务模型,根据执行顺序,执行任务模型中的任务,并更新任务模型的执行状态;

对应的,执行模块具体用于:

根据任务队列中各任务模型的执行状态,确定各任务的执行状态。

可选的,通知模块具体用于:

根据各任务的执行状态确定执行进度;

向客户端发送执行进度,以供客户端展示执行进度。

可选的,执行模块,还用于:

在任务执行失败的情况下,回滚所有已执行的任务。

可选的,执行模块具体用于:

若任务执行失败,则再次执行任务;

若任务再次执行失败,则回滚所有已执行的任务。

可选的,执行状态包括未执行完、执行成功或执行失败;

当各任务的执行状态均为执行成功时,执行进度包括执行指令执行成功的指示信息;

当存在至少一个任务的执行状态为未执行完时,执行进度包括执行成功的任务数量占总任务数量的比例信息;

当存在至少一个任务的执行状态为执行失败时,执行进度包括执行指令执行失败的指示信息。

第三方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器用于存储计算机程序;处理器用于在调用计算机程序时执行上述第一方面或第一方面的任一实施方式所述的方法。

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

本申请实施例提供的一种任务调度方法、装置及电子设备,服务器可以根据执行指令确定待执行的多个任务,然后执行各任务,并确定各任务的执行状态,最后根据各任务的执行状态,向客户端通知执行指令的执行进度,其中,执行指令为用户在客户端的网页应用中触发的。本申请的服务器可以根据各任务的执行状态,确定执行指令的执行进度,并向客户端通知该执行进度,能让客户端及时反馈处理状态,提高用户的使用体验。

附图说明

图1为本申请实施例提供的任务调度方法的流程示意图;

图2为本申请实施例提供的树形结构的示意图;

图3为本申请实施例提供的任务调度装置的结构示意图;

图4为本申请实施例提供的电子设备的结构示意图。

具体实施方式

本申请实施例提供的任务调度方法可以应用于服务器、服务器组或计算中心等电子设备,本申请实施例对电子设备的具体类型不作任何限制。

下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

在本申请的任务调度系统中,客户端与服务器通过网络相互连接,客户端中设置有网页应用,服务器中设置有网页应用的系统后台,用户可以通过网页应用触发相应的功能,再由系统后台执行该功能,以满足用户的需求。

图1为本申请实施例提供的任务调度方法的流程示意图,如图1所示,该方法包括如下步骤:

S110、根据执行指令确定待执行的多个任务。

当用户在客户端的网页应用中触发某功能选项时,可以生成相应的执行指令,该执行指令可以包括生成时间、接收执行指令的服务器地址和选项内容等。客户端可以根据该地址向对应的服务器发送该执行指令。每个执行指令在系统后台中都有对应多个的任务,通过执行对应的任务以完成对应的功能,服务器在接收到执行指令后,可以根据执行指令中的选项内容确定待执行的多个任务。

例如,用户在某研发协同平台(一款网页应用)中点击了“创建应用”这个选项,客户端可以生成创建应用执行指令,并向服务器发送创建应用的执行指令。服务器可以根据该执行指令确定创建代码仓库、还原数据库和拉取创建工具等任务,并通过执行上述任务完成创建应用的功能。

具体的,每个任务中都可以包括该任务的名称、执行内容和回滚内容,执行内容和回滚内容是配对的,例如,创建代码仓库任务的执行内容为“根据用户输入的标识,创建对应的代码仓库”,则回滚内容为“根据用户输入的标识,删除已创建的代码仓库”;生成订单任务的执行内容为“生成一个订单”,则回滚内容为“取消生成的订单”。

S120、执行任务,并确定各任务的执行状态。

对于每个功能,该功能对应的任务之间都存在设定好的执行关系,执行关系包括串行、并行和混合执行。例如,服务器根据执行指令确定待执行的任务1、任务2和任务3,其中,当三个任务之间的执行关系是串行时,任务1、任务2和任务3可以顺次执行;当三个任务之间的执行关系是并行时,任务1、任务2和任务3可以同时执行;当三个任务之间的执行关系是混合执行时,任务1和任务2之间是串行,也即是在执行完任务1之后执行任务2,任务1和任务3之间是并行,也即是服务器可同时执行任务1和任务3。

服务器可以根据预先设定好的执行关系,依次执行多个任务,并确定各任务的执行状态,其中,当任务还没有执行或正在执行中时,执行状态为未执行完;当任务执行成功时,执行状态为执行成功;当任务执行失败时,执行状态为执行失败。

具体的,对于每个任务,服务器可以根据该任务与其他任务之间的执行关系,构建该任务对应的任务模型,其中,任务模型可以包括该任务和该任务的树形结构,树形结构包括该任务的父子关系和兄弟关系。图2为本申请实施例提供的树形结构的示意图,任务模型中包括任务3和任务3的树形结构,图2为任务3的树形结构。任务1与任务3是串行的执行关系,在执行时先执行任务1再执行任务3,因此任务1与任务3是父子关系,其中,任务1是父任务,任务3是子任务;任务4与任务3也是串行的执行关系,在执行时先执行任务3再执行任务4,因此任务3与任务4也是父子关系,其中,任务3是父任务,任务4是子任务;任务2与任务3是并行的执行关系,在执行时同时执行任务2和任务3,因此任务2与任务3是兄弟关系。

在实际实施本申请的方案时,系统后台可以提供任务构造器,然后系统后台可以将待执行的多个任务依次输入至任务构造器中,由任务构造器根据该任务的执行关系生成对应的树形结构,并生成对应的任务模型。其中,任务模型还可以包括该任务模型的名称和执行模型(串行或并行)。

在构建好各任务模型后,服务器可以根据各任务模型的树形结构,依次执行各任务模型中的任务。服务器可以在执行完一个任务后,根据该任务模型的树形结构确定对应的子任务,然后再执行该子任务,直到执行完所有的任务。在实际实施本申请的方案时,系统后台可以提供多个任务执行器,由任务执行器负责识别任务模型的内容,并按照任务的执行模型执行该任务。

具体的,服务器还可以根据各任务模型的树形结构,确定任务队列,任务队列中可以包括任务模型的执行顺序和执行状态。对于每个任务模型,服务器可以根据任务队列中的执行顺序,执行任务模型中的任务,并更新任务模型的执行状态,其中,任务模型的执行状态可以包括已入队、等待中、执行中、执行成功和执行失败。

例如,当任务队列确定后,所有的任务模型的执行状态均为已入队,然后服务器可以根据执行顺序执行第一个任务模型中的任务,此时服务器可以将第一个任务模型的执行状态更新为执行中,将第二个待执行的任务模型的执行状态更新为等待中;在第一个任务模型的任务执行结束后,服务器可以将第一个任务模型的执行状态更新为执行成功,将第二个任务模型的执行状态更新为执行中,将第三个待执行的任务模型的执行状态更新为等待中,然后依次将任务队列中的所有任务模型中的任务执行完。

在服务器确定各任务的执行状态时,可以根据任务队列中各任务模型的执行状态,确定各任务的执行状态。例如,当任务模型的执行状态为已入队、等待中或执行中时,可以将对应任务的执行状态确定为未执行完;当任务模型的执行状态为执行成功时,可以将对应任务的执行状态确定为执行成功;当任务模型的执行状态为执行失败时,可以将对应任务的执行状态确定为执行失败。

具体的,对于执行指令而言,该执行指令对应的所有任务均执行成功才表示该执行指令执行成功,若任一个任务执行失败,则表示该执行指令执行失败,此时系统后台需要将所有已执行过的任务进行回滚,以恢复执行该执行指令前的状态。为了提高执行指令的执行成功率,本申请的方案还包括重试机制,也即是在当前任务执行失败时,服务器还可以再次执行该任务,若任务再次执行失败,再回滚所有已执行的任务。

在本申请中,可以通过任务队列记录详细的任务模型的执行状态,再根据任务模型的执行状态确定任务的执行状态,这样在实际应用时,系统后台的维护者可以得知每个任务的详细进度,用户也可以得知执行指令的整体进度。

S130、根据各任务的执行状态,向客户端通知执行指令的执行进度。

服务器可以根据各任务的执行状态确定执行指令的执行进度,并向客户端发送该执行进度。服务器可以预先设定执行进度的确定周期,然后每隔一个周期确定并发送一次执行进度,以供客户端展示执行进度。在客户端接收到执行进度后,可以在网页应用中展示该执行进度的内容,以使用户得知网页应用正在处理自己的操作。

具体的,当各任务的执行状态均为执行成功时,服务器可以确定执行进度包括执行指令执行成功的指示信息;当存在至少一个任务的执行状态为未执行完时,服务器可以确定执行进度包括执行成功的任务数量占总任务数量的比例信息;当存在至少一个任务的执行状态为执行失败时,服务器可以确定执行进度包括执行指令执行失败的指示信息。

在本申请实施例中,服务器可以根据执行指令确定待执行的多个任务,然后执行各任务,并确定各任务的执行状态,最后根据各任务的执行状态,向客户端通知执行指令的执行进度,其中,执行指令为用户在客户端的网页应用中触发的。本申请中服务器可以根据各任务的执行状态,确定执行指令的执行进度,并向客户端通知该执行进度,能让客户端及时反馈处理状态,提高用户的使用体验。

基于同一发明构思,作为对上述方法的实现,本申请实施例提供了一种任务调度装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。

图3为本申请实施例提供的任务调度装置的结构示意图,如图3所示,本实施例提供的装置包括:

执行模块110,用于根据执行指令确定待执行的多个任务,执行指令为用户在客户端的网页应用中触发的,执行任务,并确定各任务的执行状态;

通知模块120,用于根据各任务的执行状态,向客户端通知执行指令的执行进度。

可选的,执行模块110具体用于:

对于每个任务,根据任务与其他任务之间的执行关系,构建任务对应的任务模型,任务模型包括任务和任务的树形结构,树形结构包括任务的父子关系和兄弟关系;

根据各任务模型的树形结构,依次执行各任务模型中的任务。

可选的,执行模块110具体用于:

根据各任务模型的树形结构,确定任务队列,任务队列包括任务模型的执行顺序和执行状态;

对于每个任务模型,根据执行顺序,执行任务模型中的任务,并更新任务模型的执行状态;

对应的,执行模块110具体用于:

根据任务队列中各任务模型的执行状态,确定各任务的执行状态。

可选的,通知模块120具体用于:

根据各任务的执行状态确定执行进度;

向客户端发送执行进度,以供客户端展示执行进度。

可选的,执行模块110,还用于:

在任务执行失败的情况下,回滚所有已执行的任务。

可选的,执行模块110具体用于:

若任务执行失败,则再次执行任务;

若任务再次执行失败,则回滚所有已执行的任务。

可选的,执行状态包括未执行完、执行成功或执行失败;

当各任务的执行状态均为执行成功时,执行进度包括执行指令执行成功的指示信息;

当存在至少一个任务的执行状态为未执行完时,执行进度包括执行成功的任务数量占总任务数量的比例信息;

当存在至少一个任务的执行状态为执行失败时,执行进度包括执行指令执行失败的指示信息。

本实施例提供的任务调度装置可以执行上述方法实施例,其实现原理与技术效果类似,此处不再赘述。

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

基于同一发明构思,本申请实施例还提供了一种电子设备。图4为本申请实施例提供的电子设备的结构示意图,如图4所示,本实施例提供的电子设备包括:存储器21和处理器20,存储器21用于存储计算机程序;处理器20用于在调用计算机程序22时执行上述方法实施例所述的方法。

本实施例提供的电子设备可以执行上述方法实施例,其实现原理与技术效果类似,此处不再赘述。

本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例所述的方法。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。

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

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

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

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

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

相关技术
  • 任务调度方法、任务调度装置、任务调度设备及存储介质
  • 任务调度处理方法、装置、服务器、客户端及电子设备
技术分类

06120112901546