CN113590277A - 任务状态切换方法、装置和电子系统 - Google Patents

任务状态切换方法、装置和电子系统 Download PDF

Info

Publication number
CN113590277A
CN113590277A CN202110713094.7A CN202110713094A CN113590277A CN 113590277 A CN113590277 A CN 113590277A CN 202110713094 A CN202110713094 A CN 202110713094A CN 113590277 A CN113590277 A CN 113590277A
Authority
CN
China
Prior art keywords
state
task
actual
main task
main
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110713094.7A
Other languages
English (en)
Inventor
刘明磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kuangshi Technology Co Ltd
Beijing Megvii Technology Co Ltd
Original Assignee
Beijing Kuangshi Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kuangshi Technology Co Ltd filed Critical Beijing Kuangshi Technology Co Ltd
Priority to CN202110713094.7A priority Critical patent/CN113590277A/zh
Publication of CN113590277A publication Critical patent/CN113590277A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明提供了一种任务状态切换方法、装置和电子系统,该方法通过电子设备提供主任务对应的任务操作界面,任务操作界面显示有主任务的至少一个状态切换控件;该方法包括:如果目标状态切换控件被选中,根据目标状态切换控件设置主任务的操作状态;其中,主任务表还对应有实际状态;根据主任务的实际状态和操作状态更新任务操作界面显示的状态切换控件,本发明通过增加操作状态来记录用户对界面中任务状态切换控件的操作,结合实际状态和操作状态来更新任务操作界面中的控件,有效提升了操作系统的执行效率。

Description

任务状态切换方法、装置和电子系统
技术领域
本发明涉及操作系统技术领域,尤其是涉及一种任务状态切换方法、装置和电子系统。
背景技术
操作系统中的任务通常有不同的处理状态,用户可以根据需要切换任务状态,例如:在任务启动后用户可能会需要将进行中的任务切换为暂停或者删除等状态。任务状态切换的快慢取决于操作系统当前需要处理的任务量的大小,如果任务较多,则任务状态切换会比较慢。
同时,由于每个任务的状态切换过程均需要进行加锁,一个任务状态的切换没有完成之前,无法触发对该任务的其它状态切换需求,也导致了用户无法及时更改任务状态,影响任务状态的切换效率。
发明内容
有鉴于此,本发明的目的在于提供一种任务状态切换方法、装置和电子系统,以提升任务状态的切换效率。
第一方面,本发明实施例提供了一种任务状态切换方法,该方法通过电子设备提供主任务对应的任务操作界面,任务操作界面显示有主任务的至少一个状态切换控件;该方法包括:如果目标状态切换控件被选中,根据目标状态切换控件设置主任务的操作状态;其中,主任务表还对应有实际状态;根据主任务的实际状态和操作状态更新任务操作界面显示的状态切换控件。
进一步地,所述电子设备预存有状态切换控件与操作状态的对应关系;根据所述目标状态切换控件设置所述主任务的操作状态的步骤,包括:在所述对应关系中查找所述目标状态切换控件对应的目标操作状态;设置所述主任务的操作状态为所述目标操作状态。
进一步地,根据所述主任务的实际状态和所述操作状态更新所述任务操作界面显示的状态切换控件的步骤,包括:根据所述主任务的实际状态和所述操作状态确定任务虚拟状态;根据所述任务虚拟状态更新所述任务操作界面显示的状态切换控件。
进一步地,根据所述主任务的实际状态和所述操作状态确定任务虚拟状态的步骤,包括以下至少一项:如果所述主任务的实际状态为等待中状态,且所述操作状态均为继续状态,则设置任务虚拟状态为等待中状态;如果所述主任务的实际状态为已暂停状态,且所述操作状态为继续状态或失败重启状态,则设置所述任务虚拟状态为等待中状态;如果所述主任务的实际状态为进行中状态,且所述操作状态为继续状态或失败重启状态,则设置所述任务虚拟状态为进行中状态;如果所述主任务的实际状态为已完成状态,且所述操作状态为暂停状态或继续状态,则设置所述任务虚拟状态为已完成状态;如果所述主任务的实际状态为已完成状态,且所述操作状态为失败重启状态,则设置所述任务虚拟状态为等待中状态;如果所述操作状态为已暂停状态,且所述主任务的实际状态为除已完成状态之外的其它状态,则设置所述任务虚拟状态为已暂停状态。
进一步地,根据所述任务虚拟状态更新所述任务操作界面显示的状态切换控件的步骤,包括以下至少一项:如果所述任务虚拟状态为等待中状态,在所述任务操作界面显示暂停控件、修改控件和删除控件中至少一个;如果所述任务虚拟状态为进行中状态,在所述任务操作界面显示暂停控件、修改控件和删除控件中至少一个;如果所述任务虚拟状态为已完成状态,检查所述主任务的各个子任务的实际状态是否有失败状态,如果是,显示失败重启控件、修改控件和删除控件中至少一个;如果所述任务虚拟状态为已暂停状态,在所述任务操作界面启动控件、修改控件和删除控件中至少一个。
进一步地,所述任务操作界面还显示有所述任务虚拟状态;根据所述主任务的实际状态和所述操作状态确定任务虚拟状态的步骤之后,所述方法还包括:根据确定的所述任务虚拟状态更新所述任务操作界面显示的所述任务虚拟状态。
进一步地,所述主任务包括至少一个子任务,所述子任务对应有实际状态;所述方法还包括:更新所述主任务的实际状态;所述更新所述主任务的实际状态包括以下至少一项:若所述主任务的实际状态为已暂停状态,所述操作状态为继续状态,更新所述主任务的实际状态为等待中状态;若所述主任务的实际状态为进行中状态,通过第一任务检查所述主任务对应的所有子任务是否都为稳定状态,如果是,根据所述所有子任务的实际状态和/或所述所有子任务的子任务完成信息更新所述主任务的实际状态;其中,所述稳定状态为已暂停状态、已完成状态或已失败状态;所述子任务完成信息包括子任务总数、已完成子任务数和已失败子任务数;若所述主任务的实际状态为等待中状态,通过第二任务将所述主任务对应的至少一个子任务加入任务处理队列后,更新所述主任务的实际状态为进行中状态。
进一步地,根据所述所有子任务的实际状态和/或所述所有子任务的子任务完成信息更新所述主任务的实际状态的步骤,包括:若所述主任务对应的子任务中存在实际状态为进行中的子任务,将所述主任务的实际状态设置为进行中状态;若所述主任务对应的子任务中存在实际状态为已暂停状态,将所述主任务的实际状态设置为已暂停状态;若所述主任务对应的所有子任务的实际状态为已完成状态或已失败状态,将所述主任务的实际状态设置为已完成状态。
进一步地,所述方法还包括:通过第二任务获取多个所述主任务对应的第一目标子任务,并将获取的所述第一目标子任务按照主任务分组,得到多个所述主任务的分组子任务;其中,所述第一目标子任务为满足以下条件的子任务:未被删除且实际状态为等待中状态、已暂停状态或已失败状态,以及操作状态为继续状态;对于多个所述主任务的分组子任务,均选择第一指定数量的子任务加入任务处理队列,更新加入所述任务处理队列中的子任务的实际状态为进行中状态;其中,所述任务处理队列中的子任务以先进先出的顺序依次执行。
进一步地,所述方法还包括:如果有实际状态为已失败状态的子任务,记录失败次数,重新执行所述子任务,直至所述失败次数达到设定值停止;通过第三任务获取待分析子任务,将获取的所述待分析子任务按照其所属的主任务分组,得到待分析子任务组;其中,所述待分析子任务为满足以下条件的子任务:未被删除且实际状态为失败次数达到所述设定值,且操作状态为失败启动状态;从各待分析子任务组中选择第二指定数量的子任务加入所述任务处理队列,更新加入所述任务处理队列中的子任务的实际状态为进行中状态。
进一步地,根据所述目标状态切换控件设置所述主任务的操作状态的步骤,包括:如果所述目标状态切换控件为修改控件,接收并保存所述修改控件对应的修改信息,并设置所述主任务的操作状态为继续状态;所述方法还包括:获取所述主任务的所有子任务中实际状态为等待中状态的第二目标子任务,将所述第二目标子任务的操作状态设置为继续状态。
第二方面,本发明实施例还提供一种任务状态切换装置,该装置通过电子设备提供主任务对应的任务操作界面,任务操作界面显示有主任务的至少一个状态切换控件;该装置包括:状态设置模块,用于如果目标状态切换控件被选中,根据目标状态切换控件设置主任务的操作状态;其中,该主任务还对应有实际状态;控件更新模块,用于根据主任务的实际状态和操作状态更新任务操作界面显示的状态切换控件。
第三方面,本发明实施例还提供一种电子系统,包括:处理设备和存储装置;存储装置上存储有计算机程序,计算机程序在被处理设备运行时执行上述第一方面的任务状态切换方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理设备运行时执行上述第一方面的任务状态切换方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供的上述任务状态切换方法、装置和电子系统,在目标状态切换控件被选择时,通过使用主任务的操作状态记录该目标状态切换控件的操作,以及根据主任务的实际状态和操作状态更新任务操作界面中的状态切换控件。这种方式不需要等待主任务的各个子任务实际完成该目标状态切换控件对应的业务逻辑处理,即可更新任务操作界面中的状态切换控件,这样用户可以根据任务操作界面中显示的状态切换控件,进行后续的操作,提升了任务操作界面的更新效率,减少了用户的等待时间,有效提升了操作系统的执行效率。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种电子设备的框图;
图2为本申请实施例提供的一种任务状态切换方法的流程图;
图3为本申请实施例提供的另一种任务状态切换方法的流程图;
图4为本申请实施例提供的一种主任务实际状态更新方法的流程图;
图5为本申请实施例提供的一种子任务的处理方法的流程图;
图6为本申请实施例提供的一种任务状态切换方法的流程示意图;
图7为本申请实施例提供的一种任务状态切换界面的示意图;
图8为本申请实施例提供的一种任务状态切换装置的结构示意图;
图9为本申请实施例提供的另一种任务状态切换装置的结构示意图;
图10为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
近年来,基于人工智能的计算机视觉、深度学习、机器学习、图像处理、图像识别等技术研究取得了重要进展。人工智能(Artificial Intelligence,AI)是研究、开发用于模拟、延伸人的智能的理论、方法、技术及应用系统的新兴科学技术。人工智能学科是一门综合性学科,涉及芯片、大数据、云计算、物联网、分布式存储、深度学习、机器学习、神经网络等诸多技术种类。计算机视觉作为人工智能的一个重要分支,具体是让机器识别世界,计算机视觉技术通常包括人脸识别、活体检测、指纹识别与防伪验证、生物特征识别、人脸检测、行人检测、目标检测、行人识别、图像处理、图像识别、图像语义理解、图像检索、文字识别、视频处理、视频内容识别、行为识别、三维重建、虚拟现实、增强现实、同步定位与地图构建(SLAM)、计算摄影、机器人导航与定位等技术。随着人工智能技术的研究和进步,该项技术在众多领域展开了应用,例如安防、城市管理、交通管理、楼宇管理、园区管理、人脸通行、人脸考勤、物流管理、仓储管理、机器人、智能营销、计算摄影、手机影像、云服务、智能家居、穿戴设备、无人驾驶、自动驾驶、智能医疗、人脸支付、人脸解锁、指纹解锁、人证核验、智慧屏、智能电视、摄像机、移动互联网、网络直播、美颜、美妆、医疗美容、智能测温等领域。
目前用户对任务进行状态切换操作后,操作系统需要基于该操作进行一系列的业务逻辑处理,直至该操作对应的业务逻辑处理完成,用户才能进行该任务的其它状态切换操作,导致任务状态切换不灵活且效率低。基于此,本发明实施例提供一种任务状态切换方法、装置以及电子系统,可以提高任务状态切换效率。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种任务状态切换方法进行详细介绍。
图1为本发明实施例提供的一种电子设备的框图,本发明实施例提供的任务状态切换方法通过图1所示的电子设备实现,如图1所示,电子设备中包括操作系统,该操作系统具体包括操作系统前端和操作系统后端,操作系统前端用于向用户显示当前所有可操作的任务的列表,可操作的任务可以是例如视频传输任务、文件下载任务、视频解析任务以及文件处理等任务。列表中包括任务的基本信息以及针对该任务的状态切换控件,用户可以选择某个状态切换控件进行操作,操作系统后端根据用户的操作来触发该任务切换的执行过程,并根据用户的操作更新操作系统前端显示的任务状态切换控件。该电子设备还包括存储装置,用于存储用户操作过程中的数据和信息。
图2为本发明实施例提供的一种任务状态切换方法的流程图,该方法应用于电子设备,通过电子设备提供主任务对应的任务操作界面,任务操作界面显示该主任务的至少一个状态切换控件,本实施例中的状态切换控件可以包括启动、暂停、修改、失败重启和删除等;该方法包括步骤S201-S202:
步骤S201:如果目标状态切换控件被选中,根据目标状态切换控件设置主任务的操作状态;其中,该主任务表还对应有实际状态;
其中,上述操作状态对应于用户对该主任务对应的状态切换控件的操作,上述实际状态对应于该主任务在实际执行的进程中所处的状态。
电子设备向用户提供主任务对应的任务操作界面,任务操作界面中可以包括多个主任务信息,例如主任务1、主任务2、主任务3,多个主任务对应的状态切换控件可以不同。为了便于存储主任务的相关信息,本发明实施例中,每个主任务可以对应一个主任务表,该主任务表中可以至少包括表征该主任务操作状态的字段和表征该主任务实际状态的字段。
任务操作界面中还可以包括多个主任务对应的状态切换控件,以便用户对主任务下达操作指令。在本步骤中,用户在任务操作界面中选中该主任务对应的某个状态切换控件,该被选中的状态切换控件即视为目标状态切换控件,电子设备将根据该选中的目标状态切换控件,设置数据库中该主任务对应的操作状态,使该操作状态与目标状态切换控件一致,例如:目标状态切换控件为暂停控件,则该操作状态为“暂停”,该操作状态可以应用字母和/或数字表示不同的状态切换控件对应的操作,例如“暂停”用“1”表示。
步骤S202:根据主任务的实际状态和操作状态更新任务操作界面显示的状态切换控件。
主任务的状态不同时,其所对应的状态切换控件可以不同,以便用户针对不同状态的主任务下达不同的操作指令。例如,主任务处于暂停状态时,可以在任务操作界面展示“继续”状态切换控件,以便用户下达继续执行的操作指令,而无需再展示“暂停”状态切换控件。
在用户通过目标状态切换控件下达操作指令后,可以根据用户下达的操作指令更新主任务的实际状态,再根据更新后的主任务的实际状态更新任务操作界面显示的状态切换控件,以便用户下达下一次操作指令。然而,主任务过多时,主任务的实际状态可能更新不及时,如此,便不能将任务操作界面显示的状态切换控件更新为合适类型的状态切换控件。例如,主任务的实际状态为进行中,用户通过“暂停”目标状态切换控件将操作状态设置为暂停,但主任务实际上还未来得及暂停。此时如果按照主任务的实际状态“进行中”确定任务操作界面的状态切换控件,则应该显示“暂停”状态切换控件。然而,用户已经下达暂停操作指令,此时界面应该展示“继续”状态切换控件,以便用户下达继续执行的操作指令,而无需再展示“暂停”状态切换控件。
因此,可不仅根据主任务的实际状态更新任务操作界面显示的状态切换控件,而根据主任务的实际状态和操作状态更新任务操作界面显示的状态切换控件。
在一些实施方式中,上述主任务的实际状态也记录于上述主任务表中,主任务的实际状态可以包括等待中状态、已暂停状态、进行中状态和已完成状态等,状态切换控件包括继续、暂停、修改、失败重启和删除等,操作状态又与被选择的状态切换控件对应,因此实际应用中,会有多种实际状态与操作状态的组合,例如,实际状态为等待中状态、操作状态为继续状态的组合;实际状态为已暂停状态,操作状态为继续状态或者失败重启状态的组合;实际状态为进行中状态,操作状态为继续状态或者失败重启状态的组合,实际状态为已完成状态,操作状态为失败重启状态的组合,实际状态为等待中状态、进行中状态或者已完成状态,操作状态为已暂停状态的组合。而不同的组合下显示哪些状态切换控件,可以预先设定这个组合与状态切换控件的对应关系,电子设备根据实际状态和操作状态,在该对应关系中找到需要显示哪些状态切换控件,并进行显示。
本发明实施例的上述方法,在目标状态切换控件被选择时,通过使用主任务的操作状态记录该目标状态切换控件的操作,以及根据主任务的实际状态和操作状态更新任务操作界面中的状态切换控件。这种方式不需要等待主任务的各个子任务实际完成该目标状态切换控件对应的业务逻辑处理,即可正确的更新任务操作界面中的状态切换控件,这样用户可以根据任务操作界面中显示的状态切换控件,进行后续的操作,提升了任务操作界面的更新效率,减少了用户的等待时间,有效提升了操作系统的执行效率。
为了便于用户批量操作,减少用户针对同类型任务的重复操作,通常采用主任务管理各个子任务的方式进行处理,用户对一个主任务的操作,实际是对该主任务包括的多个子任务的操作。为了便于理解,主任务为对100个相机进行视频采集控制为例,创建相机管理主任务,该相机管理主任务包括用户选择的100个相机,默认主任务创建完成后,子任务即100个相机分别进入启动状态,开始视频采集。当相机在视频采集过程中,用户想暂停采集操作,则只需要点击任务操作界面中的暂停控件,主任务的操作状态将会设置为暂停状态,任务操作界面中的状态切换控件会根据主任务的实际状态和操作状态更新,同时任务操作界面中显示的任务状态信息也会随着更新。而电子设备会根据定时任务查看到主任务的操作状态为暂停状态,从而对100个相机进行暂停状态对应的业务逻辑处理。这种方式,可以仅点击一个暂停控件,即可完成对100个相机的暂停处理,执行效率较高。
上述应用场景中是以相机对象为子任务的维度进行说明的,实际应用中,子任务的维度还可以有其它形式,例如:主任务为对一个文件进行解析处理,该文件包括4个视频流,每个视频流可能包括上千个视频切片(视频图像),那么子任务可以理解为是每个视频切片对应的解析处理任务。
在一些实施方式中,每个主任务对应一个主任务表,每个子任务对应一个子任务表,子任务表中可以包含主任务标识字段,用于将同一个主任务对应的子任务进行区分。
在主任务表中可以包含主任务对应的操作状态和实际状态,实际状态表示该主任务所包含的子任务实际的执行状态,操作状态表示用户对主任务对应的状态切换控件的操作。为了便于表述,本实施例采用status表示主任务的实际状态,用operation表示主任务的操作状态。status的不同数值代表主任务实际处于不同的状态,operation的不同数值代表用户操作了不同的状态切换控件。具体地,status与operation的取值范围可以参见以下表1:
表1
Figure BDA0003134407620000111
Figure BDA0003134407620000121
基于以上描述,可以在电子设备中预存有上述状态切换控件与操作状态(operation)的对应关系,上述步骤S201中的根据目标状态切换控件设置主任务的操作状态的步骤,可以包括:(1)在上述对应关系中查找目标状态切换控件对应的目标操作状态;(2)设置主任务的操作状态为该目标操作状态。
当用户操作状态切换控件时,基于上述表1,找到状态切换控件对应的operation值,并更新主任务表中该主任务对应的operation值。
当用户对某一主任务执行删除操作时,则任务操作界面中不再显示该主任务对应的信息,后续的更新主任务表以及更新显示的状态切换控件的操作都无需考虑已删除的主任务,为了提高查询效率,可以将状态切换控件分为两类,一类为非删除操作对应的控件,可以称之为第一类控件;一类为删除操作对应的状态切换控件,可以称之为第二类控件。相应地,操作状态也可以分为两类,一类为非删除操作对应的操作状态,一类为删除操作对应的操作状态。相应地,上述步骤S201中的根据目标状态切换控件设置主任务的操作状态的步骤,可以包括:
(1)如果目标状态切换控件为第一类控件,根据目标状态切换控件设置主任务对应的第一操作状态对应的值;其中,第一类控件包括:启动控件、暂停控件、修改控件和失败重启控件;
(2)如果目标状态切换控件为第二类控件,根据目标状态切换控件设置主任务对应的第二操作状态对应的值;其中,第二类控件包括:删除控件。
本申请的一些实施例中,主任务表中的操作状态还可以包括第一操作状态和第二操作状态,本实施例中,为了便于表述,采用operation表示第一操作状态,用deleteStatus表示第二操作状态。operation的取值范围参见表1,deleteStatus的取值范围请参见以下表2所示:
表2
Figure BDA0003134407620000131
例如,主任务在建立时,第二操作状态(deleteStatus)的默认值是0,当用户操作主任务对应的暂停控件,则将主任务表中的operation设为1,如果用户操作主任务对应的删除控件,则将主任务表中的deleteStatus设为1。
可以理解的是,主任务的操作状态可以同时包括二类操作状态,用两类操作状态共同描述主任务的操作状态。例如第一类操作状态的值为已暂停,第二类操作状态的值为未删除,主任务的操作状态为未删除且暂停。图3是本申请实施例提供的另一种任务状态切换方法的流程图,该方法着重描述了如何根据主任务的实际状态和操作状态更新任务操作界面显示哪些状态切换控件的过程,该方法中的主任务对应有操作状态和实际状态,该方法包括步骤S301-S303:
步骤S301:如果目标状态切换控件被选中,根据目标状态切换控件设置主任务的操作状态;
步骤S302:根据主任务的实际状态和操作状态确定任务虚拟状态(或简称为虚拟状态);
其中,任务虚拟状态用于表征向用户反馈的任务状态,这个任务虚拟状态有别于上述实际状态,该任务虚拟状态是根据主任务的实际状态和操作状态确定的,不是该主任务实际对应的状态。根据主任务的实际状态和操作状态确定任务虚拟状态的具体方式下述实施例将详述,这里不再赘述。
可以理解的是,主任务实际状态的变化或操作状态的变化均可能引起任务虚拟状态的变化。
步骤S303:根据任务虚拟状态更新任务操作界面显示的状态切换控件。
本实施例中,用户在任务操作界面对主任务的某个状态切换控件进行操作后,为了快速向用户展示操作后的任务状态以及与该任务状态对应的可用的状态切换控件,可以用虚拟状态来表示该任务在用户操作状态切换控件后的状态,上述任务虚拟状态是一个中间值,具体可以是通过预设变量的值来体现,为了便于描述,本实施例使用statusX表示主任务对应的虚拟状态,该虚拟状态用于确定向用户显示哪些状态切换控件,statusX的不同数值代表的虚拟状态包括:1)statusX=0:等待中,虚拟状态的初始值,表示需要向用户展示当前主任务处于等待中的状态;2)statusX=1:正在进行,表示需要向用户展示当前任务正在处理;3)statusX=2:已完成,表示需要向用户展示当前任务已经处理完毕;4)statusX=3:已暂停,表示需要向用户展示当前任务已经停止执行。引入虚拟状态的目的是对用户操作进行快速的响应,无需用户长时间等待即可进行对其它状态切换控件的操作。
具体地,上述步骤S302中的根据主任务的实际状态和操作状态确定任务虚拟状态的步骤,可以包括以下至少一项:
(1)如果主任务的实际状态为等待中状态,且操作状态为继续状态,则设置任务虚拟状态为等待中状态;
(2)如果主任务的实际状态为已暂停状态,且操作状态为继续状态或失败重启状态,则设置任务虚拟状态为等待中状态;
(3)如果主任务的实际状态为进行中状态,且操作状态为继续状态或失败重启状态,则设置任务虚拟状态为进行中状态;
(4)如果主任务的实际状态为已完成状态,且操作状态为暂停状态或继续状态,则设置任务虚拟状态为已完成状态;
(5)如果主任务的实际状态为已完成状态,且操作状态为失败重启状态,则设置任务虚拟状态为等待中状态;
(6)如果操作状态为已暂停状态,且主任务的实际状态为除已完成状态之外的其它状态,则设置任务虚拟状态为已暂停状态。
在确定了虚拟状态以后,可以根据虚拟状态与状态切换控件的对应关系,来更新在任务操作界面中显示哪些状态切换控件。可以显示的状态切换控件包括:启动、暂停、删除、修改、失败重启。
在一些实施例中,上述步骤S303中的根据任务虚拟状态更新显示的状态切换控件的步骤,可以包括以下至少一项:
(1)如果任务虚拟状态为等待中状态,在任务操作界面显示暂停控件、修改控件和删除控件中至少一个;
(2)如果任务虚拟状态为进行中状态,在任务操作界面显示暂停控件、修改控件和删除控件中至少一个;
(3)如果任务虚拟状态为已完成状态,检查主任务的各个子任务的实际状态是否有失败状态,如果是,说明主任务已执行完毕但有子任务执行失败,此时显示失败重启控件、修改控件和删除控件中至少一个;如果否,说明主任务已执行完毕且执行成功,不显示状态切换控件;
(4)如果任务虚拟状态为已暂停状态,在任务操作界面显示启动控件、修改控件和删除控件中至少一个。
实际场景中,电子设备可以根据以上步骤来实现基于主任务的实际状态和操作状态确定主任务的虚拟状态,并基于虚拟状态确定显示的状态切换控件的过程,还可以在电子设备中预存实际状态、操作状态、虚拟状态以及显示的状态切换控件之间的对应关系,并根据对应关系查找到主任务的虚拟状态以及可以显示的状态切换控件,上述对应关系如下表3所示:
表3
Figure BDA0003134407620000161
Figure BDA0003134407620000171
为了使用户更直观的了解各个主任务当前的操作状态,上述任务操作界面还可以显示该主任务对应的任务虚拟状态,具体地,可以根据确定的任务虚拟状态更新显示的任务虚拟状态。例如在任务操作界面中,显示任务信息,该任务信息可以包括主任务名称、创建时间、创建人、当前任务状态,该任务状态可以具体为该主任务对应的虚拟状态,如等待中。
上述任务信息可以实时显示在任务操作界面中,也可以通过任务操作界面中的查询按键触发后,显示于任务操作界面中。
本发明实施例在对状态切换控件操作后,能够根据status和operation字段判断显示给用户的状态切换控件,该过程中不需要对任务的操作进行加锁处理,用户可以在各个子任务执行过程中,进行该任务的其他的状态切换的操作,能够满足快速响应用户操作的需求。
在一些实施方式中,主任务包括至少一个子任务,子任务对应有实际状态。上述方法还包括:更新主任务的实际状态;更新主任务的实际状态包括以下至少一项:(1)若主任务的实际状态为已暂停状态,操作状态为继续状态,更新主任务的实际状态为等待中状态;(2)若主任务的实际状态为进行中状态,通过第一任务检查主任务对应的所有子任务是否都为稳定状态,如果是,根据所有子任务的实际状态和/或所有子任务的子任务完成信息更新主任务的实际状态;其中,该稳定状态为已暂停状态、已完成状态或已失败状态;上述子任务完成信息包括子任务总数、已完成子任务数和已失败子任务数等;(3)若主任务的实际状态为等待中状态,通过第二任务将主任务对应的至少一个子任务加入任务处理队列后,更新主任务的实际状态为进行中状态。
上述子任务的实际状态可以基于该子任务的业务逻辑执行进度更新;例如,如果子任务的业务逻辑执行进度指示该子任务已完成,则更新该子任务的实际状态为已完成状态;或者,如果子任务的业务逻辑执行进度指示该子任务已失败,则更新该子任务的实际状态为已失败状态。
与主任务表相对应的,上述子任务的子任务表中也可以包括子任务的实际状态、子任务的操作状态(与主任务的操作状态同步)以及子任务的删除状态,本发明实施例使用statusZ表示子任务的实际状态,用operationZ表示子任务的第一操作状态以及用deleteStatusZ来表示子任务的第二操作状态。statusZ、operationZ和deleteStatusZ的取值范围可以如下表4所示:
表4
Figure BDA0003134407620000181
Figure BDA0003134407620000191
基于此,本申请实施例提供了一种主任务实际状态的更新方法,参见图4,图4是本申请实施例提供的一种主任务实际状态更新方法的流程图,该方法中,该方法包括步骤S401:
步骤S401:若主任务的实际状态为进行中状态,通过第一任务获取主任务对应的所有子任务的实际状态,如果该主任务的所有子任务的实际状态均为稳定状态,根据所有子任务的实际状态和/或所有子任务的子任务完成信息更新该主任务的实际状态。
这里的稳定状态和子任务完成信息如上所述。
上述第一任务可以是定时任务,也可是基于事件触发的任务,如果是定时任务,定时任务可以根据其定时时长执行对应的操作。例如,第一任务为第一定时任务,在第一定时任务的时间到达之后,获取主任务对应的所有子任务的实际状态,进而检查是否该主任务的所有子任务的实际状态均为稳定状态。如果有至少一个子任务不是稳定状态,则此次不更新主任务的实际状态;等到达第一定时任务的下一个定时时间时,再执行上述操作。如果所有子任务均为稳定状态,则根据所有子任务的实际状态和/或所有子任务的子任务完成信息更新该主任务的实际状态,以使主任务的实际状态表示的是主任务包括的所有子任务的实际状态的总体情况,具体地,如果该主任务对应的子任务中至少一个子任务开始处理,则该主任务的status设为1(正在进行),如果该主任务对应的子任务全部完成(无论成功或者失败),那么该主任务的status设为2(已完成)。可以理解的是,如果该主任务对应的所有子任务都未开始处理,则该主任务的status设为0(等待中)。
在一些实施例中,步骤S401中根据所有子任务的实际状态和/或所有子任务的子任务完成信息更新该主任务的实际状态的步骤,可以包括:(1)若主任务对应的子任务中存在实际状态为进行中的子任务,将主任务的实际状态设置为进行中状态;(2)若主任务对应的子任务中存在实际状态为已暂停状态,将主任务的实际状态设置为已暂停状态;(3)若主任务对应的所有子任务的实际状态为已完成状态或已失败状态,将主任务的实际状态设置为已完成状态。
根据所有子任务的子任务完成信息更新该主任务的实际状态的过程可以具体为:根据子任务的总数、已完成任务数和已失败任务数,更新主任务表的实际状态。例如,可以遍历子任务表中的数据,将所有主任务标识(taskID)相同的子任务的完成信息进行统计,计算出该taskID对应的所有子任务的总数totalNum,所有子任务实际状态为已完成的子任务的总数overNum,以及所有子任务实际状态为已失败的子任务的总数failNum,如果overNum=totalNum,说明所有子任务已经完成,则更新taskID对应的主任务的实际状态为3(已完成),如果overNum+failNum=totalNum,也更新taskID对应的主任务的实际状态为3(已完成);其余情况,说明不是所有子任务均处于稳定态,此次不进行主任务实际状态的更新。
在一些实施例中,为了提升操作状态的查询速度,可以将主任务的操作状态同步至子任务的信息中,上述方法还包括:通过第四任务读取所述主任务的操作状态;根据读取到的所述操作状态更新所述子任务的操作状态。以操作状态存储于上述主任务表和子任务表为例,为了减少主任务表和子任务表的切换查询,可以采用子任务的操作状态与主任务表中的操作状态的值保持一致的方式,具体可以根据以下方法将主任务表中的操作状态与子任务表中的操作状态进行同步:(1)通过第四任务读取主任务表中的操作状态;(2)根据读取到的操作状态更新子任务表中的操作状态。这种方式下,在需要获取主任务的操作状态时,也可以从子任务表中读取,而不必切换到主任务表去获取,实现更简单。
在实际应用场景中,用户在任务处理过程中,还可能对任务进行修改,例如修改主任务或者子任务的传输参数、修改主任务或者子任务的名称等,当用户对主任务或者子任务进行修改后,需要将还未开始处理的子任务以及未完成的主任务的操作状态设置为初始值,即0(等待中),以便重新开始进行主任务和子任务的处理,因此,上述根据目标状态切换控件设置主任务的操作状态的步骤,可以包括:如果目标状态切换控件为修改控件,接收并保存修改控件对应的修改信息,并设置主任务的操作状态为继续状态;相应地,上述方法还包括:获取主任务的所有子任务中实际状态为等待中状态的第二目标子任务,将第二目标子任务的操作状态设置为继续状态。
在一些实施方式中,如果用户选择的状态切换控件为暂停控件,则上述主任务的操作状态修改为暂停状态,负责修改子任务实际状态的任务(例如定时任务)将子任务的实际状态为等待中的子任务作为第三目标子任务,将第三目标子任务的实际状态修改为暂停状态,第三目标子任务后续便不会被放入任务处理队列。可以理解的是,如果子任务的实际状态为进行中,说明该子任务已进入任务处理队列进行处理,则不再使其暂停。
本发明实施例还提供子任务实际状态的更新方法。
子任务的实际状态为进行中时,监听子任务的业务逻辑执行进度,根据业务逻辑执行进度更新子任务的实际状态,而不再根据操作状态更新实际状态。
例如,子任务已被放入任务处理队列,其实际状态为进行中,即便此时操作状态为暂停,也不再将子任务的实际状态修改为已暂停或将子任务从任务处理队列中删除。
子任务的实际状态的数值可以根据子任务的业务逻辑的实际执行进度来更新。其中,业务逻辑执行进度可以是该子任务实际完成的状态,例如,对于下载视频的子任务,如果下载完毕,则该子任务的业务逻辑执行进度为完成,如果下载过程中出现传输错误,导致下载失败,则该子任务的业务逻辑执行进度为失败。
在监听各个子任务的业务逻辑执行进度时,如果子任务的业务逻辑执行完毕,根据监听到的子任务的业务逻辑执行进度更新子任务的实际状态。例如,电子设备在t1时刻监听到子任务1的业务逻辑已经执行完毕,那么将子任务1对应的子任务表中的statusZ设为2(已完成),如果操作系统后端在t2时刻监听到子任务2的业务逻辑处理失败,那么将子任务2对应的子任务表中的statusZ设为4(已失败)。
子任务的实际状态为等待中,操作状态为暂停时,将子任务的实际状态改为已暂停,如此,该子任务便不会被放入任务队列。
子任务的实际状态为等待中、已暂停或已失败,操作状态为继续或失败重启,则按照步骤S501-S502或S503设置子任务实际状态。
子任务的实际状态为已暂停,操作状态为继续,将子任务的实际状态改为等待中。
参见图5所示的本申请实施例提供的一种子任务的处理方法的流程图,该方法包括步骤S501-S502:
步骤S501:通过第二任务获取多个主任务对应的第一目标子任务,并将获取的第一目标子任务按照主任务分组,得到多个主任务的分组子任务;其中,第一目标子任务为满足以下条件的子任务:未被删除且实际状态为等待中状态、已暂停状态或已失败状态,以及操作状态为继续状态;
步骤S502:对于多个主任务的分组子任务,均选择第一指定数量的子任务加入任务处理队列,更新加入任务处理队列中的子任务的实际状态为进行中状态;其中,该任务处理队列中的子任务以先进先出的顺序依次执行。
通过上述第二任务,可以查询所有子任务表,将该子任务未被删除且未执行成功,同时用户对该子任务对应的主任务的启动控件进行操作的子任务(即操作状态为继续状态),确定为第一目标子任务,具体地,可以根据以下的查询条件确定第一目标子任务:(1)子任务的删除状态为未被删除;(2)子任务的实际状态为等待中状态、已暂停状态或者已失败状态的子任务;(3)子任务的操作状态为继续状态。
确定出第一目标子任务后,根据对应的主任务标识进行分组,得到分组子任务(也可以称为目标子任务组),可以理解的是,分组子任务中的每一个子任务对应的主任务标识是相同的。
在实际场景中,可以使用以下查询条件确定第一目标子任务:
statusZ in(0,3,4)and deleteStatusZ in(0)and operationZ in(2)
进一步地,还可以在上述查询条件中增加条件retry_count<N。其中,retry_count表示该子任务执行失败的次数,N为预设的失败次数,retry_count<N表示该子任务执行的次数还没有达到预设的失败次数,该子任务还可以继续执行。
为了减少同一时间运行的任务的数量,以提高电子设备的运行效率,可以针对每一个主任务的分组子任务,选择第一指定数量的子任务加入任务处理队列,并修改加入任务处理队列中的子任务的实际状态为进行中。例如主任务M1对应的子任务组包括子任务s11-s16,主任务M2对应的子任务组包括子任务s21-s28。设定第一指定数量是5,那么将主任务M1对应的s11-s15加入任务处理队列,将主任务M2对应的s21-s25加入任务处理队列,并将s11-s15和s21-s25对应的子任务表中的实际状态设为1(进行中)。
应当注意的是,用户可能在短时间内进行多次状态切换操作,例如针对某个主任务先操作了暂停控件,又立即操作了启动控件,之后又立即操作了暂停控件,这种情况下,子任务的实际运行情况与用户的状态切换操作不符合,为了避免在处理了子任务之后再停止的情况,需要在将子任务加入任务处理队列之前,检查该子任务是否满足消息队列的加入条件,例如,该子任务当前的操作状态是否仍然是0(继续)或者2(启动),任务处理队列可以采用kafka、rocketMQ、RabbitMQ以及activeMQ等,本申请实施例对比不做限定。
主任务的实际状态是通过子任务的实际状态和操作状态更新的,当主任务对应的所有子任务都执行完毕(无论成功或者失败)时,表示该主任务已经完成,当主任务对应的子任务中全部执行完毕,但是存在失败的子任务时,用户可以在任务操作界面中对失败重启控件操作,基于用户的这种操作,上述方法还包括S503:(1)如果有实际状态为已失败状态的子任务,记录失败次数,重新执行子任务,直至失败次数达到设定值停止;(2)通过第三任务获取待分析子任务,将获取的待分析子任务按照其所属的主任务分组,得到待分析子任务组;其中,待分析子任务为满足以下条件的子任务:未被删除且实际状态为失败次数达到设定值,且操作状态为失败启动状态;(3)从各待分析子任务组中选择第二指定数量的子任务加入任务处理队列,更新加入任务处理队列中的子任务的实际状态为进行中状态。
每个子任务对应的失败次数,用一个中间值来表示,例如可以使用retry_count来记录子任务的失败次数,同时预设失败次数阈值,如果子任务执行失败,则重新尝试执行子任务,直至执行了设定值次的子任务都失败了,则确定该子任务执行失败。
通过上述方式查询所有子任务表,同时满足以下条件的子任务可以确定为待分析子任务:1)子任务的删除状态为未被删除;2)子任务的实际状态为失败次数达到设定值;3)子任务的操作状态为失败重启;实际场景中,可以使用以下查询条件确定待分析子任务:
status in(4)and delete_statusZ in(0)and operationZ in(2)and retry_count in(N),其中retry_count表示该子任务执行失败的次数,N为预设的失败次数,即上述设定值。
对于查询到的待分析子任务,根据对应的主任务标识进行分组,得到每个主任务对应的待分析子任务组。
进一步地,在更新主任务的实际状态后,还可以根据子任务完成信息和主任务的实际状态更新显示的状态切换控件。图6是本申请实施例提供的一种任务状态切换方法的流程示意图,该方法包括步骤S601-S609:
步骤S601:在电子设备提供的任务操作界面中显示主任务及主任务对应的状态切换控件。
针对每个新创建的主任务,设置主任务的status为0(等待中),operation为0(继续),查询上述表3,确定需要在电子设备中显示的状态切换控件是“启动”、“暂停”、“修改”、“删除”,如图7所示。
步骤S602:用户操作状态切换控件。
步骤S603:响应于用户的操作,电子设备更新主任务表的操作状态。
步骤S604:电子设备根据主任务表的操作状态和实际状态,更新显示的状态切换控件。
步骤S605:到达定时器1的定时时间,电子设备根据子任务的实际状态和主任务的操作状态,确定主任务的实际状态。
理论上,主任务的实际状态由其对应的各子任务的实际状态决定,而各子任务的实际状态根据主任务的操作状态决定,但是,当子任务的实际状态未根据主任务的操作状态更新时,会导致单独根据子任务的实际状态更新出来的主任务的实际状态不准确。为此,在确认主任务的实际状态时,不仅考虑子任务的实际状态,还考虑主任务的操作状态。
在一些实施例中,主任务的实际状态的更新可以在满足以下条件时进行:
(1)当主任务对应的至少一个子任务被开始处理时,先把主任务的实际状态(即status值)由0-等待中状态调整为1-正在进行中状态;
由于子任务的划分粒度比较小,默认为每个子任务是不可分割的整体,处于正在进行中的子任务会一直让它执行到稳定态(包括暂停状态、已完成状态或失败状态),不会受操作状态(operation值)的影响。
(2)一旦主任务的status值处于进行中之后,则只有当所有的子任务status值都处于稳定态(暂停或已完成或失败)之后,才会再次更新主任务的status,即子任务中存在正在进行中的子任务时,不触发更新主任务的status值;
(3)所有子任务都处于稳定态之后,只要有其中任何一个子任务的status值是:暂停,则会把主任务的status值更新为:3-已暂停状态;
(4)子任务都处于稳定态之后,子任务的status值都是已完成或失败,则会把主任务的status值更新为:2-已完成状态。
基于子任务的实际状态与操作状态有多种组合,表5给出了根据子任务的实际状态和主任务的操作状态,确定出主任务的实际状态一种实现形式。
表5
Figure BDA0003134407620000261
Figure BDA0003134407620000271
由上述主任务的实际状态更新过程可知,主任务的实际状态从0-等待中变成1-正在进行中的过程,是在即将处理子任务时进行的更新,这种更新过程可以应用一个定时任务按照主任务对应的子任务,查询该主任务对应的子任务的实际状态是否有处于正在进行中,如果有,则将该主任务的实际状态从0-等待中变成1-正在进行中。上述主任务的其它状态(非0-等待中的状态)变成已暂停或已完成,可以应用一个定时任务检查子任务表,根据检查得到的子任务的实际状态达到稳定态后更新该主任务的实际状态。对于主任务的实际状态从已暂停变成等待中的过程(表5中的场景8),为前端用户点击的状态切换控件为继续时,同步触发的主任务的实际状态更新。
步骤S606:到达定时器2的定时时间,电子设备根据主任务的操作状态,更新子任务的操作状态。
步骤S607:到达定时器3的定时时间,电子设备将目标子任务放入任务处理队列中,开始处理目标子任务,修改目标子任务对应的主任务的实际状态为进行中状态。
步骤S608:到达定时器4的定时时间,电子设备从已失败的子任务中确定出待分析子任务,将待分析子任务放入任务处理队列中,开始处理待分析子任务。
步骤S609:到达定时器5的定时时间,电子设备根据主任务标识统计所有子任务的完成信息,并更新主任务的实际状态。
通过采用上述多个定时器的方式,可以启动各个定时器对应的定时任务,进行相关操作,这种方式能够合理有效地更新主任务表和子任务表,保障各个子任务的可靠执行。
基于上述方法实施例,本发明实施例还提供了一种任务状态切换装置,参见图8所示,该装置通过电子设备提供主任务对应的任务操作界面,任务操作界面显示有主任务的至少一个状态切换控件,上述装置包括:
状态设置模块801,用于如果目标状态切换控件被选中,根据目标状态切换控件设置主任务的操作状态;其中,该主任务表还对应有实际状态;
控件更新模块802,用于根据主任务的实际状态和操作状态更新任务操作界面显示的状态切换控件。
上述装置中,在目标状态切换控件被选择时,通过使用主任务的操作状态记录该目标状态切换控件的操作,以及根据主任务的实际状态和操作状态更新任务操作界面中的状态切换控件。这种方式不需要等待主任务的各个子任务实际完成该目标状态切换控件对应的业务逻辑处理,即可更新任务操作界面中的状态切换控件,这样用户可以根据任务操作界面中显示的状态切换控件,进行后续的操作,提升了任务操作界面的更新效率,减少了用户的等待时间,有效提升了操作系统的执行效率。
上述电子设备预存有状态切换控件与操作状态的对应关系;上述状态设置模块801还用于:在所述对应关系中查找所述目标状态切换控件对应的目标操作状态;设置所述主任务的操作状态为所述目标操作状态。
上述状态设置模块801还用于:如果所述目标状态切换控件为第一类控件,根据所述目标状态切换控件设置所述主任务对应的第一操作状态对应的值;其中,所述第一类控件包括:启动控件、暂停控件、修改控件和失败重启控件中的至少之一;和/或,如果所述目标状态切换控件为第二类控件,根据所述目标状态切换控件设置所述主任务对应的第二操作状态对应的值;其中,所述第二类控件包括:删除控件。
上述控件更新模块802还用于:根据所述主任务的实际状态和所述操作状态确定任务虚拟状态;根据所述任务虚拟状态更新所述任务操作界面显示的状态切换控件。
上述根据主任务的实际状态和操作状态确定任务虚拟状态的过程,包括以下至少一项:如果所述主任务的实际状态为等待中状态,且所述操作状态均为继续状态,则设置任务虚拟状态为等待中状态;如果所述主任务的实际状态为已暂停状态,且所述操作状态为继续状态或失败重启状态,则设置所述任务虚拟状态为等待中状态;如果所述主任务的实际状态为进行中状态,且所述操作状态为继续状态或失败重启状态,则设置所述任务虚拟状态为进行中状态;如果所述主任务的实际状态为已完成状态,且所述操作状态为暂停状态或继续状态,则设置所述任务虚拟状态为已完成状态;如果所述主任务的实际状态为已完成状态,且所述操作状态为失败重启状态,则设置所述任务虚拟状态为等待中状态;如果所述操作状态为已暂停状态,且所述主任务的实际状态为除已完成状态之外的其它状态,则设置所述任务虚拟状态为已暂停状态。
上述根据任务虚拟状态更新任务操作界面显示的状态切换控件的过程,包括以下至少一项:如果所述任务虚拟状态为等待中状态,在所述任务操作界面显示暂停控件、修改控件和删除控件中至少一个;如果所述任务虚拟状态为进行中状态,在所述任务操作界面显示暂停控件、修改控件和删除控件中至少一个;如果所述任务虚拟状态为已完成状态,检查所述主任务的各个子任务的实际状态是否有失败状态,如果是,显示失败重启控件、修改控件和删除控件中至少一个;如果所述任务虚拟状态为已暂停状态,在所述任务操作界面启动控件、修改控件和删除控件中至少一个。
参见图9所示的另一种任务状态切换装置的结构示意图,该装置中的任务操作界面还显示有任务虚拟状态,在上述装置的基础上,该装置还包括:任务虚拟状态更新模块901,用于根据确定的任务虚拟状态更新任务操作界面显示的任务虚拟状态。
所述主任务包括至少一个子任务,所述子任务对应有实际状态;上述装置还包括实际状态更新模块902,用于更新所述主任务的实际状态;所述更新所述主任务的实际状态包括以下至少一项:
(1)若所述主任务的实际状态为已暂停状态,所述操作状态为继续状态,更新所述主任务的实际状态为等待中状态;
(2)若所述主任务的实际状态为进行中状态,通过第一任务检查所述主任务对应的所有子任务是否都为稳定状态,如果是,根据所述所有子任务的实际状态和/或所述所有子任务的子任务完成信息更新所述主任务的实际状态;其中,所述稳定状态为已暂停状态、已完成状态或已失败状态;所述子任务完成信息包括子任务总数、已完成子任务数和已失败子任务数;
(3)若所述主任务的实际状态为等待中状态,通过第二任务将所述主任务对应的至少一个子任务加入任务处理队列后,更新所述主任务的实际状态为进行中状态。
上述根据所述所有子任务的实际状态和/或所述所有子任务的子任务完成信息更新所述主任务的实际状态的过程包括:若所述主任务对应的子任务中存在实际状态为进行中的子任务,将所述主任务的实际状态设置为进行中状态;若所述主任务对应的子任务中存在实际状态为已暂停状态,将所述主任务的实际状态设置为已暂停状态;若所述主任务对应的所有子任务的实际状态为已完成状态或已失败状态,将所述主任务的实际状态设置为已完成状态。
上述装置还包括:子任务处理模块903,用于通过第二任务获取多个所述主任务对应的第一目标子任务,并将获取的所述第一目标子任务按照主任务分组,得到多个所述主任务的分组子任务;其中,所述第一目标子任务为满足以下条件的子任务:未被删除且实际状态为等待中状态、已暂停状态或已失败状态,以及操作状态为继续状态;对于多个所述主任务的分组子任务,均选择第一指定数量的子任务加入任务处理队列,更新加入所述任务处理队列中的子任务的实际状态为进行中状态;其中,所述任务处理队列中的子任务以先进先出的顺序依次执行。
所述装置还包括:子任务分析模块904,如果有实际状态为已失败状态的子任务,记录失败次数,重新执行所述子任务,直至所述失败次数达到设定值停止;通过第三任务获取待分析子任务,将获取的所述待分析子任务按照其所属的主任务分组,得到待分析子任务组;其中,所述待分析子任务为满足以下条件的子任务:未被删除且实际状态为失败次数达到所述设定值,且操作状态为失败启动状态;从各待分析子任务组中选择第二指定数量的子任务加入所述任务处理队列,更新加入所述任务处理队列中的子任务的实际状态为进行中状态。
上述状态设置模块801还用于:如果目标状态切换控件为修改控件,接收并保存修改控件对应的修改信息;设置主任务的主任务的操作状态为继续状态;相应地,子任务处理模块903还用于获取所述主任务的所有子任务中实际状态为等待中状态的第二目标子任务,将所述第二目标子任务的操作状态设置为继续状态。
本发明实施例提供的任务状态切换装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,上述装置的实施例部分未提及之处,可参考前述任务状态切换方法实施例中的相应内容。
本发明实施例还提供了一种电子设备,如图10所示,为该电子设备的结构示意图,其中,该电子设备包括处理器1001和存储器1002,该存储器1002存储有能够被该处理器1001执行的计算机可执行指令,该处理器1001执行该计算机可执行指令以实现上述任务状态切换方法。
在图10示出的实施方式中,该电子设备还包括总线1003和通信接口1004,其中,处理器1001、通信接口1004和存储器1002通过总线1003连接。
其中,存储器1002可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口1004(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线1003可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线1003可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器1001可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1001中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1001可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)、神经网络处理器(Neural-networkProcessing Unit,简称NPU)等;还可以是图形处理器(Graphics Processing Unit,简称GPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器1001读取存储器中的信息,结合其硬件完成前述实施例的任务状态切换方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述任务状态切换方法,具体实现可参见前述方法实施例,在此不再赘述。
本发明实施例所提供的任务状态切换方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (14)

1.一种任务状态切换方法,其特征在于,所述方法通过电子设备提供主任务对应的任务操作界面,所述任务操作界面显示有所述主任务的至少一个状态切换控件;所述方法包括:
如果目标状态切换控件被选中,根据所述目标状态切换控件设置所述主任务的操作状态;其中,所述主任务还对应有实际状态;
根据所述主任务的实际状态和所述操作状态更新所述任务操作界面显示的状态切换控件。
2.根据权利要求1所述的方法,其特征在于,所述电子设备预存有状态切换控件与操作状态的对应关系;
根据所述目标状态切换控件设置所述主任务的操作状态的步骤,包括:
在所述对应关系中查找所述目标状态切换控件对应的目标操作状态;
设置所述主任务的操作状态为所述目标操作状态。
3.根据权利要求1或2所述的方法,其特征在于,根据所述主任务的实际状态和所述操作状态更新所述任务操作界面显示的状态切换控件的步骤,包括:
根据所述主任务的实际状态和所述操作状态确定任务虚拟状态;
根据所述任务虚拟状态更新所述任务操作界面显示的状态切换控件。
4.根据权利要求3所述的方法,其特征在于,根据所述主任务的实际状态和所述操作状态确定任务虚拟状态的步骤,包括以下至少一项:
如果所述主任务的实际状态为等待中状态,且所述操作状态均为继续状态,则设置任务虚拟状态为等待中状态;
如果所述主任务的实际状态为已暂停状态,且所述操作状态为继续状态或失败重启状态,则设置所述任务虚拟状态为等待中状态;
如果所述主任务的实际状态为进行中状态,且所述操作状态为继续状态或失败重启状态,则设置所述任务虚拟状态为进行中状态;
如果所述主任务的实际状态为已完成状态,且所述操作状态为暂停状态或继续状态,则设置所述任务虚拟状态为已完成状态;
如果所述主任务的实际状态为已完成状态,且所述操作状态为失败重启状态,则设置所述任务虚拟状态为等待中状态;
如果所述操作状态为已暂停状态,且所述主任务的实际状态为除已完成状态之外的其它状态,则设置所述任务虚拟状态为已暂停状态。
5.根据权利要求3或4所述的方法,其特征在于,根据所述任务虚拟状态更新所述任务操作界面显示的状态切换控件的步骤,包括以下至少一项:
如果所述任务虚拟状态为等待中状态,在所述任务操作界面显示暂停控件、修改控件和删除控件中至少一个;
如果所述任务虚拟状态为进行中状态,在所述任务操作界面显示暂停控件、修改控件和删除控件中至少一个;
如果所述任务虚拟状态为已完成状态,检查所述主任务的各个子任务的实际状态是否有失败状态,如果是,显示失败重启控件、修改控件和删除控件中至少一个;
如果所述任务虚拟状态为已暂停状态,在所述任务操作界面启动控件、修改控件和删除控件中至少一个。
6.根据权利要求3-5任一项所述的方法,其特征在于,所述任务操作界面还显示有所述任务虚拟状态;
根据所述主任务的实际状态和所述操作状态确定任务虚拟状态的步骤之后,所述方法还包括:根据确定的所述任务虚拟状态更新所述任务操作界面显示的所述任务虚拟状态。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述主任务包括至少一个子任务,所述子任务对应有实际状态;
所述方法还包括:更新所述主任务的实际状态;所述更新所述主任务的实际状态包括以下至少一项:
若所述主任务的实际状态为已暂停状态,所述操作状态为继续状态,更新所述主任务的实际状态为等待中状态;
若所述主任务的实际状态为进行中状态,通过第一任务检查所述主任务对应的所有子任务是否都为稳定状态,如果是,根据所述所有子任务的实际状态和/或所述所有子任务的子任务完成信息更新所述主任务的实际状态;其中,所述稳定状态为已暂停状态、已完成状态或已失败状态;所述子任务完成信息包括子任务总数、已完成子任务数和已失败子任务数;
若所述主任务的实际状态为等待中状态,通过第二任务将所述主任务对应的至少一个子任务加入任务处理队列后,更新所述主任务的实际状态为进行中状态。
8.根据权利要求7所述的方法,其特征在于,根据所述所有子任务的实际状态和/或所述所有子任务的子任务完成信息更新所述主任务的实际状态的步骤,包括:
若所述主任务对应的子任务中存在实际状态为进行中的子任务,将所述主任务的实际状态设置为进行中状态;
若所述主任务对应的子任务中存在实际状态为已暂停状态,将所述主任务的实际状态设置为已暂停状态;
若所述主任务对应的所有子任务的实际状态为已完成状态或已失败状态,将所述主任务的实际状态设置为已完成状态。
9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
通过第二任务获取多个所述主任务对应的第一目标子任务,并将获取的所述第一目标子任务按照主任务分组,得到多个所述主任务的分组子任务;其中,所述第一目标子任务为满足以下条件的子任务:未被删除且实际状态为等待中状态、已暂停状态或已失败状态,以及操作状态为继续状态;
对于多个所述主任务的分组子任务,均选择第一指定数量的子任务加入任务处理队列,更新加入所述任务处理队列中的子任务的实际状态为进行中状态;其中,所述任务处理队列中的子任务以先进先出的顺序依次执行。
10.根据权利要求7-9任一项所述的方法,其特征在于,所述方法还包括:
如果有实际状态为已失败状态的子任务,记录失败次数,重新执行所述子任务,直至所述失败次数达到设定值停止;
通过第三任务获取待分析子任务,将获取的所述待分析子任务按照其所属的主任务分组,得到待分析子任务组;其中,所述待分析子任务为满足以下条件的子任务:未被删除且实际状态为失败次数达到所述设定值,且操作状态为失败启动状态;
从各待分析子任务组中选择第二指定数量的子任务加入所述任务处理队列,更新加入所述任务处理队列中的子任务的实际状态为进行中状态。
11.根据权利要求1-10任一项所述的方法,其特征在于,根据所述目标状态切换控件设置所述主任务的操作状态的步骤,包括:
如果所述目标状态切换控件为修改控件,接收并保存所述修改控件对应的修改信息,并设置所述主任务的操作状态为继续状态;
所述方法还包括:
获取所述主任务的所有子任务中实际状态为等待中状态的第二目标子任务,将所述第二目标子任务的操作状态设置为继续状态。
12.一种任务状态切换装置,其特征在于,所述装置通过电子设备提供主任务对应的任务操作界面,所述任务操作界面显示有所述主任务的至少一个状态切换控件;所述装置包括:
状态设置模块,用于如果目标状态切换控件被选中,根据所述目标状态切换控件设置所述主任务的操作状态;其中,所述主任务还对应有实际状态;
控件更新模块,用于根据所述主任务的实际状态和所述操作状态更新所述任务操作界面显示的状态切换控件。
13.一种电子系统,其特征在于,所述电子系统包括:处理设备和存储装置;所述存储装置上存储有计算机程序,所述计算机程序在被所述处理设备运行时执行如权利要求1至11任一项所述的任务状态切换方法。
14.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理设备运行时执行如权利要求1至11任一项所述的任务状态切换方法的步骤。
CN202110713094.7A 2021-06-25 2021-06-25 任务状态切换方法、装置和电子系统 Pending CN113590277A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110713094.7A CN113590277A (zh) 2021-06-25 2021-06-25 任务状态切换方法、装置和电子系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110713094.7A CN113590277A (zh) 2021-06-25 2021-06-25 任务状态切换方法、装置和电子系统

Publications (1)

Publication Number Publication Date
CN113590277A true CN113590277A (zh) 2021-11-02

Family

ID=78244694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110713094.7A Pending CN113590277A (zh) 2021-06-25 2021-06-25 任务状态切换方法、装置和电子系统

Country Status (1)

Country Link
CN (1) CN113590277A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115866017A (zh) * 2023-02-27 2023-03-28 天翼云科技有限公司 消息处理方法、装置、通信设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080046100A1 (en) * 2006-08-15 2008-02-21 Swaminathan Balasubramanian Notification of state transition of an out-of-focus application
CN108132735A (zh) * 2016-11-30 2018-06-08 中兴通讯股份有限公司 终端与应用控制方法
US20180189096A1 (en) * 2016-12-30 2018-07-05 Troy Goode System and method for state machine management
CN109343939A (zh) * 2018-07-31 2019-02-15 国家电网有限公司 一种分布式集群及并行计算任务调度方法
CN110018886A (zh) * 2017-12-29 2019-07-16 广东欧珀移动通信有限公司 应用状态切换方法和装置、电子设备、可读存储介质
CN110941388A (zh) * 2019-11-27 2020-03-31 北京字节跳动网络技术有限公司 任务执行过程中的界面控制方法、装置、终端和存储介质
US20200192716A1 (en) * 2018-12-12 2020-06-18 Servicenow, Inc. Control token and hierarchical dynamic control
CN112148178A (zh) * 2020-09-30 2020-12-29 维沃移动通信有限公司 应用切换方法、装置、电子设备及可读存储介质
CN112380030A (zh) * 2020-11-09 2021-02-19 中国建设银行股份有限公司 主任务处理方法、装置、服务器和存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080046100A1 (en) * 2006-08-15 2008-02-21 Swaminathan Balasubramanian Notification of state transition of an out-of-focus application
CN108132735A (zh) * 2016-11-30 2018-06-08 中兴通讯股份有限公司 终端与应用控制方法
US20180189096A1 (en) * 2016-12-30 2018-07-05 Troy Goode System and method for state machine management
CN110018886A (zh) * 2017-12-29 2019-07-16 广东欧珀移动通信有限公司 应用状态切换方法和装置、电子设备、可读存储介质
CN109343939A (zh) * 2018-07-31 2019-02-15 国家电网有限公司 一种分布式集群及并行计算任务调度方法
US20200192716A1 (en) * 2018-12-12 2020-06-18 Servicenow, Inc. Control token and hierarchical dynamic control
CN110941388A (zh) * 2019-11-27 2020-03-31 北京字节跳动网络技术有限公司 任务执行过程中的界面控制方法、装置、终端和存储介质
CN112148178A (zh) * 2020-09-30 2020-12-29 维沃移动通信有限公司 应用切换方法、装置、电子设备及可读存储介质
CN112380030A (zh) * 2020-11-09 2021-02-19 中国建设银行股份有限公司 主任务处理方法、装置、服务器和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115866017A (zh) * 2023-02-27 2023-03-28 天翼云科技有限公司 消息处理方法、装置、通信设备及存储介质

Similar Documents

Publication Publication Date Title
KR20180009352A (ko) 모바일 게임에 대한 데이터 처리 방법 및 장치
CN108536467B (zh) 代码的定位处理方法、装置、终端设备及存储介质
CN113568666B (zh) 图像的处理方法、装置、存储介质和处理器
KR102187741B1 (ko) 메타데이터 크라우드 소싱 시스템 및 방법
CN114936269A (zh) 文档搜索平台、搜索方法、装置、电子设备及存储介质
CN113590277A (zh) 任务状态切换方法、装置和电子系统
CN114979029A (zh) 一种虚拟机器人的控制方法、装置、设备及存储介质
CN112328602B (zh) 一种数据写入Kafka的方法、装置及设备
CN114065948A (zh) 构建预训练模型的方法、装置、终端设备和存储介质
CN107633080B (zh) 一种用户任务处理方法及装置
CN112559525A (zh) 数据检查系统、方法、装置和服务器
CN112287799A (zh) 基于人工智能的视频处理方法、装置及电子设备
CN111104915A (zh) 一种同行分析方法、装置、设备和介质
CN115690880A (zh) 异构人像档案数据二次聚合方法、系统、设备及存储介质
CN109901933B (zh) 业务系统的操作方法及装置、存储介质、电子装置
CN113139093A (zh) 视频搜索方法及装置、计算机设备和介质
CN114547182A (zh) 人员信息同步方法、终端设备及存储介质
CN112988806A (zh) 一种数据处理的方法及装置
CN117149339B (zh) 基于人工智能的用户界面关系识别方法及相关装置
CN116863407B (zh) 物联网监控数据处理方法及系统
JP3053288B2 (ja) 通信端末装置
CN114915787B (zh) 视频流和ai模型的调度管理系统、方法、装置及存储介质
US20230298286A1 (en) System, method for system, terminal, and method and storage medium for terminal
CN116931920A (zh) 业务逻辑对象处理方法、装置、电子设备及存储介质
CN112783986A (zh) 基于标签的对象分组编制方法及装置、存储介质、终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination