CN115964137A - 一种分布式任务处理方法、装置、终端设备及存储介质 - Google Patents
一种分布式任务处理方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN115964137A CN115964137A CN202111185695.1A CN202111185695A CN115964137A CN 115964137 A CN115964137 A CN 115964137A CN 202111185695 A CN202111185695 A CN 202111185695A CN 115964137 A CN115964137 A CN 115964137A
- Authority
- CN
- China
- Prior art keywords
- task
- mark
- subtask
- target task
- calculation
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于分布式任务处理技术领域,提供了一种分布式任务处理方法、装置、终端设备及存储介质。本申请实施例中周期性对预设存储空间中的各个任务进行检测;当检测到存在目标任务时,检测上述目标任务中的各个子任务的计算标记,并对不存在计算标记的子任务进行计算处理;上述目标任务为包含开始标记的任务;当检测到上述目标任务中的各个子任务符合预设标准时,对上述目标任务进行完成标记,从而提高任务处理过程中的稳定性。
Description
技术领域
本申请属于分布式任务处理技术领域,尤其涉及一种分布式任务处理方法、装置、终端设备及存储介质。
背景技术
随着社会的发展,人们越来越重视任务处理的效率,目前常用的任务处理方法主要依赖于特定的计算机集群,而集群为了实现任务的分配和调度需要使用MPI接口编写程序,致使MPI主进程根据程序设计,需要通过网络联系各节点进行任务分配,并协调计算节点完成子任务的计算,计算完成后主进程回收计算结果。但由于MPI主进程处理任务的中心化程度过高,而导致如果某个计算节点崩溃,那么分配给该节点的任务将无法完成,致使其他节点都将等待下去,导致任务处理过程中的稳定性较低。
发明内容
本申请实施例提供了一种分布式任务处理方法、装置、终端设备及存储介质,可以解决任务处理过程中的稳定性较低的问题。
第一方面,本申请实施例提供了一种分布式任务处理方法,包括:
周期性对预设存储空间中的各个任务进行检测;
当检测到存在目标任务时,检测上述目标任务中的各个子任务的计算标记,并对不存在计算标记的子任务进行计算处理;上述目标任务为包含开始标记的任务;
当检测到上述目标任务中的各个子任务符合预设标准时,对上述目标任务进行完成标记。
第二方面,本申请实施例提供了一种分布式任务处理装置,包括:
周期检测模块,用于周期性对预设存储空间中的各个任务进行检测;
计算标记检测模块,用于当检测到存在目标任务时,检测上述目标任务中的各个子任务的计算标记,并对不存在计算标记的子任务进行计算处理;上述目标任务为包含开始标记的任务;
标记完成模块,用于当检测到上述目标任务中的各个子任务符合预设标准时,对上述目标任务进行完成标记。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现上述任一种分布式任务处理方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述的计算机程序被处理器执行时实现上述任一种分布式任务处理方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一种分布式任务处理方法。
本申请实施例中通过周期性对预设存储空间中的各个任务进行检测,促使终端设备自由检测需要进行处理的任务,当检测到存在目标任务时,再检测上述目标任务中的各个子任务的计算标记,并对不存在计算标记的子任务进行计算处理,从而提高目标任务的计算速度,上述目标任务为包含开始标记的任务;当检测到上述目标任务中的各个子任务符合预设标准时,说明目标任务已经处理完成,再对上述目标任务进行完成标记,以便于终端设备再次对预设存储空间中的各个任务进行检测时,明确目标任务已处理完成,从而通过将任务存储于存储空间中,促使终端设备自由检测存储空间中的需处理的任务,就算某一终端设备在处理子任务的过程中出现意外状况,其他终端设备也会在检测到目标任务时对未处理的子任务进行处理,进一步提升了任务处理过程中的稳定性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的分布式任务处理方法的第一种流程示意图;
图2是本申请实施例提供的分布式任务处理方法的第二种流程示意图;
图3是本申请实施例提供的分布式任务处理装置的结构示意图;
图4是本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1所示为本申请实施例中一种分布式任务处理方法的流程示意图,该方法的执行主体可以是终端设备,该终端设备可以是计算节点,该计算节点是一台可以用于完成计算处理任务的计算机及其配套设备,在高性能计算的环境下,计算节点一般会配备至少两个物理或逻辑核心,配备该计算节点内可以共享的内存和存储磁盘,本实施例中以计算节点为例进行说明,如图1所示,上述分布式任务处理方法可以包括如下步骤:
步骤S101、周期性对预设存储空间中的各个任务进行检测。
在本实施例中,上述周期可以根据需求进行审定,例如,设为5秒,即计算节点每隔5秒对预设存储空间中的各个任务进行检测;上述预设存储空间是一个可以共享的存储空间,即可以同时提供至少两个参与任务计算的计算节点进行访问并读写的数据存储介质,上述预设存储空间包括存储于本地的实体存储器件和存储于通过网络访问的逻辑存储空间,该实体存储器件包括但不限于是磁盘阵列、闪存盘等,该逻辑存储空间包括但不限于是云存储空间、虚拟数据仓库等。
可以理解的是,因为目前计算节点仅需要访问预设存储空间,即可实现对需求任务的计算处理,各个计算节点之间不需进行联系,也互相不存在依赖关系,所以计算节点之间不需要保持局域网通信,且无需MPI的协调处理,故任务处理过程不再存出中心化现象,没有了主进程、控制进程的概念,在预设存储空间稳定存在的情况下,任何计算节点的崩溃都不会导致任务计算失败或子任务缺失的情况,从而在并行计算的过程中提高了任务处理的稳定性。
步骤S102、当检测到存在目标任务时,检测目标任务中的各个子任务的计算标记,并对不存在计算标记的子任务进行计算处理;目标任务为包含开始标记的任务。
在本实施例中,上述目标任务对应一个大规模计算任务,相当于处理一个大型计算问题,可以通过文件夹的格式存在于预设存储空间中,在计算节点检测到预设存储空间中存在目标任务时,说明当前存在需计算节点进行计算处理的目标任务。而计算节点继续对目标任务中的各个子任务进行检测,上述各个子任务对应将一个大型计算问题拆分为各个较小的计算单元,计算节点通过对各个子任务进行处理可以加快处理速度,并且在存在至少两个计算节点同时对预设存储空间进行访问时,该至少两个计算节点可以同时对目标任务中的各个不存在计算标记的子任务进行处理,在处理之前并不需要确定子任务由哪个计算节点进行处理,从而实现目标任务中的大批量的子任务自动化的分配和分布式并行计算,其中,上述子任务在预设存储空间中可位于目标任务对应的文件夹中以预设格式进行扁平化存储,该预设格式包括但不限于是文件夹格式、子目录格式等。
可以理解的是,本申请采用预设存储空间实现子任务的分配和管理,既可以子任务的任务信息,即计算节点通过检测计算标记,就可以得知当前检测的子任务是否被计算,该任务信息相当于子任务的计算状态,从而无需计算节点之间的直接通信,不需要复杂的作业调度软件和MPI编程,就可以非常容易的实现不同类型、不同位置、不同架构计算节点的协同工作。通过在计算节点中设置shell脚本,以运行两个简单的程序(检测程序和计算处理程序),即可让任何计算节点参与大量任务(例如,目标任务中的各个子任务)的并行计算过程中,从而大大节省了搭建计算机集群的成本和时间,并降低了维护难度,可以适用于在计算节点之间无法或不便通过网络通信直接进行管理和同步时进行的大型任务的分布式计算。
可选的,在检测目标任务中的各个子任务的计算标记,并对不存在计算标记的子任务进行计算处理时,上述预设存储空间可以同时接受至少两个计算节点进行访问,可以致使目标任务中的各个子任务更加灵活的进行配置,例如,根据任务计算处理的速度和所花费的成本在整个目标任务处理过程中削减参与子任务的任务计算的计算节点,或者增加在集群局域网外的计算节点参与到任务计算的工作中,该集群局域网外的计算节点只要具备读写预设存储空间的能力,即可进行参与。其中,不同的计算节点之间的计算能力和架构不一定相同,所以在计算速度和成本时,需要分别考虑不同类型的计算节点,以提高资源配置的准确性。可以理解的是,计算节点通过对子任务设定计算标记的方式进行协调,并不需要设置主进程或控制进程,且无需提前锁定一定数量的子任务进行计算处理,还可以在计算过程中随时增加新的计算节点,或者随时去掉已有计算节点,每个计算节点独立运行,不受其他节点影响,从而大大提高了计算资源调度的灵活性。
具体地,在检测到存在目标任务之前,需将任务划分为各个子任务,并将划分后的各个子任务所需的计算数据分别存储于对应子文件夹内,即一个子文件夹对应一个子任务,或者将各个子任务所需的计算数据分别存储于其他可以描述平行化数据结构的容器中。上述划分各个子任务的过程可以由本地计算机进行,再上传至预设存储空间中,也可以由计算节点进行该操作,具体划分过程可以根据任务的特性决定,这里不做限定。例如,任务为一个大型矩阵的乘法A*B,那么可以将A的每一行乘以B的每一列为一个子任务,而相应地,子文件夹中的子任务所需的计算数据也就是A的一行和B的一列。
在一个实施例中,上述检测目标任务的具体方式为,计算节点检测任务中是否存在开始标记,该开始标记可以通过一个目标开始标记文件进行判定,当检测到存在目标开始标记文件,则说明任务存在开始标记,该任务为目标任务,需对该目标任务中的各个子任务进行计算处理。可以理解的是,上述目标开始标记文件相当于整个任务的全局开始指令,即告诉可以识别该任务的至少一个计算节点可以计算处理该任务的信号。而相应的,若计算处理该任务之后,检测到任务中存在完成标记,该完成标记可以通过一个目标结束标记文件进行判定,当检测到存在目标结束标记文件,则说明目标任务已经计算处理完成,上述目标结束标记文件相当于整个任务的全局结束指令,告诉已经在识别或者可以识别该任务的至少一个计算节点该任务已经处理完成,从而避免计算节点重复计算某一任务。其中,上述目标开始标记文件和上述目标结束标记文件均可以为0字节文件。
可以理解的是,当计算节点检测开始标记的过程中,并不影响计算节点进行其他任务的计算处理,即通过上述检测程序和计算处理程序即可实现计算节点的工作转换控制,即计算节点进行检测工作时,其算力还可以做其他用途,从而不会造成闲置浪费。只有在检测程序检测到目标任务以及目标任务中不存在计算标记的子任务后,才会启动计算处理程序,以便于进行实质性的计算。计算节点通过检测程序和计算处理程序,来实现其算力的征用和释放。
可选的,当用户想要计算节点计算某一任务时,可以控制计算节点、上位机或其他终端,向预设存储空间中的对应任务的文件夹中写入目标开始标记文件,而上述目标结束标记文件将在任务计算处理完成后自动写入。
进一步地,因同一任务可能会存在多次计算处理,而每一次计算处理所用的任务中各个子任务的计算数据并不相同,而为了防止出现因上一次的计算处理完成后的完成标记,而被计算节点错认为当前任务的计算处理已完成的状况,在上述步骤S102中检测到存在目标任务,即说明任务中存在开始标记之后,还可以包括:计算节点检测目标任务中是否存在完成标记,即目标结束标记文件,若目标任务存在完成标记,则确定完成标记的标记时刻和开始标记的标记时刻,若开始标记的标记时刻在完成标记的标记时刻之后,说明该任务上一次处理完成后的完成标记没有消除,则取消目标任务的完成标记,再进行目标任务计算处理过程。
在一个实施例中,主要是通过计算节点以预设顺序依次对目标任务中的各个子任务进行检测,从而根据子任务中是否存在计算标记,来确定出需进行计算处理的子任务,若当前检测的子任务存在计算标记,则计算节点无需进行计算处理,计算节点跳过该子任务,继续进行下一个子任务的检测。其中,上述预设顺序可以根据用户需求进行设定,例如,通过根据目标任务中的各个子任务对应的文件名进行排序,该顺序的确定可以确保可以计算处理目标任务的至少两个计算节点的检测目标任务中的各个子任务的顺序相同。
在一个实施例中,上述步骤S102中检测目标任务中的各个子任务的计算标记,可以包括:计算节点通过检测子任务中的文件,若检测出子任务中存在开始标记文件和结束标记文件,说明该子任务已经被处理完成,则确定子任务存在计算标记,从而致使计算节点在检测到子任务中存在计算标记时确定该子任务无需处理,从而避免了任务被重复计算处理。
可以理解的是,每次更新任务,会对任务中的各个子任务的文件夹进行更新,故子任务中不会存在上一次任务计算处理中的结束标记文件的残留。
相应地,上述步骤S102中检测目标任务中的各个子任务的计算标记,还可以包括:计算节点通过检测子任务中的文件,若检测出子任务中不存在开始标记文件和结束标记文件,说明该子任务没有被计算处理,则确定子任务不存在计算标记,从而致使计算节点在检测到子任务中不存在计算标记时对子任务进行计算处理,生成开始标记文件,以防止其他计算节点检测时未发现计算标记,而导致任务被重复计算处理,然后在计算节点计算处理完成后,写入结束标记文件,再继续进行下一个子任务的检测。
在一个实施例中,因有时计算节点由于某些外界因素或者自身因素,而导致算力不足或节点崩溃等状况,从而致使该计算节点所处理的子任务计算失败,为了避免子任务由于计算节点的因素,而导致计算时间过长或者无法计算,如图2所示,上述步骤S102中检测目标任务中的各个子任务的计算标记,可以包括:
步骤S201、检测子任务中的文件。
步骤S202、若子任务中存在开始标记文件,且不存在结束标记文件,则获取当前时刻和开始标记文件的写入时刻。
步骤S203、计算写入时刻和当前时刻的时间差。
步骤S204、若时间差大于等于预设计算时间阈值,则确定子任务不存在计算标记;
步骤S205、若时间差小于预设计算时间阈值,则确定子任务存在计算标记;。
在本实施例中,计算节点通过子任务中存在开始标记文件,且不存在结束标记文件,可以确定出该子任务正在被其他计算节点进行计算处理,而为了防止子任务的处理时间过长,计算节点通过比对当前时刻和开始标记文件的写入时刻的时间差,来判断是否任务处理时间过长,若时间差大于等于预设计算时间阈值,则说明该任务的计算时间过长,可能是因为之前处理该任务的计算节点存在问题,从而确定该子任务不存在计算标记,当前计算节点接手该子任务,重新处理该子任务,即在子任务中重新写入开始标记文件,进行计算处理,并在计算处理完成之后,写入结束标记文件。从而就算某一计算节点在计算过程中崩溃或长时间不响应,相应的计算任务,也可在其他计算节点检测该任务时检测出来,并完成对应的计算任务,提高了目标任务计算处理的效率,并减少了慢节点或坏节点的等待时间。
在一个实施例中,上述步骤S102中对不存在计算标记的子任务进行计算处理可以包括:计算节点将预设的开始标记文件写入不存在计算标记的子任务,再获取不存在计算标记的子任务中的数据文件,并根据不存在计算标记的子任务中的可执行程序对数据文件进行计算;当计算完成后,通过可执行程序将计算结果写入不存在计算标记的子任务中,该计算结果不仅可以存储于预设存储空间中,还可以通过邮件等其他信息传递的方式存储于用户需求的地方,再将预设的结束标记文件写入不存在计算标记的子任务,从而致使不存在计算标记的子任务通过开始标记文件和结束标记文件的写入,而存在计算标记,证明该子任务已经计算处理完成。
步骤S103、当检测到目标任务中的各个子任务符合预设标准时,对目标任务进行完成标记。
在本实施例中,计算节点在检测到目标任务中的各个子任务的完成情况符合预设标准时,对目标任务进行完成标记,即写入目标结束标记文件,然后计算节点可以继续进行下一任务的检测,以检测出预设存储空间中是否存在下一个目标任务。
在一个实施例中,检测到目标任务中的各个子任务符合预设标准,可以包括:若目标任务符合第一任务类型,例如,一个大型矩阵的乘法A*B,则当计算节点检测目标任务中的各个子任务中均存在计算标记时,确定目标任务中的各个子任务的完成情况符合第一任务类型对应的预设标准。
在一个实施例中,上述检测到目标任务中的各个子任务符合预设标准,可以包括:若目标任务符合第二任务类型,例如,深度学习所需要生成的数量很大(例如,十万个)的合成样本,将合成样本应用于神经网络的训练过程时无需完成所有的计算,例如,生成90%的样本也在可接受范围时。计算节点若连续检测预设数量的子任务均存在计算标记,则确定目标任务中的各个子任务的完成情况符合第二任务类型对应的预设标准。
具体地,计算节点无需按照顺序检测目标任务中的各个子任务,而是随机检测一个子任务,如果当前检测的子任务存在计算标记,则说明该子任务已经被计算处理,从而在计数器上进行计数加一,并同时继续检测下一个子任务;如果当前检测的子任务不存在计算标记,则说明该子任务没有被计算处理,然后对子任务进行计算处理,在计算处理完成后,继续检测下一个子任务,并同时将计数器的计数进行归零处理。在本实施例中,计算节点可以设置一个阈值,即上述预设数量,当计数器计数达到预设数量时,说明连续检测的预设数量的子任务均被计算处理,认为目标任务的计算处理完成,计算节点停止对目标任务进行计算处理操作,并对目标任务进行完成标记。可以理解的是,本实施例中的通过连续检测预设数量的子任务的计算标记,来确定是否完成任务的方法,适用于只需要一定比例子任务完成计算,就可以满足要求的场景,例如,神经网络的训练场景,从而避免了每个子任务都要被至少两个参与计算处理的计算节点重复检测的过程,降低了预设存储空间的读写负担。
在一个实施例中,在步骤S103之后,说明当前目标任务的计算处理已经结束,但当前目标任务中还存在开始标记,为了防止之后计算节点检测到开始标记,而重复计算处理,计算节点还可以确定完成标记的标记时刻和开始标记的标记时刻,并对完成标记的标记时刻和开始标记的标记时刻进行比对,若开始标记的标记时刻在完成标记的标记时刻之前,说明开始标记和完成标记均为当前处理目标任务对应的标记,则取消目标任务的开始标记。
本申请实施例中通过周期性对预设存储空间中的各个任务进行检测,促使终端设备自由检测需要进行处理的任务,当检测到存在目标任务时,再检测上述目标任务中的各个子任务的计算标记,并对不存在计算标记的子任务进行计算处理,从而提高目标任务的计算速度,上述目标任务为包含开始标记的任务;当检测到上述目标任务中的各个子任务符合预设标准时,说明目标任务已经处理完成,再对上述目标任务进行完成标记,以便于终端设备再次对预设存储空间中的各个任务进行检测时,明确目标任务已处理完成,从而通过将任务存储于存储空间中,促使终端设备自由检测存储空间中的需处理的任务,就算某一终端设备在处理子任务的过程中出现意外状况,其他终端设备也会在检测到目标任务时对未处理的子任务进行处理,进一步提升了任务处理过程中的稳定性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文所述的一种分布式任务处理方法,图3所示为本申请实施例中一种分布式任务处理装置的结构示意图,如图3所示,上述分布式任务处理装置可以包括:
周期检测模块301,用于周期性对预设存储空间中的各个任务进行检测。
计算标记检测模块302,用于当检测到存在目标任务时,检测目标任务中的各个子任务的计算标记,并对不存在计算标记的子任务进行计算处理;目标任务为包含开始标记的任务。
标记完成模块303,用于当检测到目标任务中的各个子任务符合预设标准时,对目标任务进行完成标记。
在一个实施例中,上述计算标记检测模块302可以包括:
第一文件检测单元,用于检测子任务中的文件。
第一标记确定单元,用于若子任务中存在开始标记文件和结束标记文件,则确定子任务存在计算标记。
在一个实施例中,上述计算标记检测模块302还可以包括:
第二文件检测单元,用于检测子任务中的文件。
时刻获取单元,用于若子任务中存在开始标记文件,且不存在结束标记文件,则获取当前时刻和开始标记文件的写入时刻。
时间差计算单元,用于计算写入时刻和当前时刻的时间差。
第二标记确定单元,用于若时间差大于等于预设计算时间阈值,则确定子任务不存在计算标记;
第三标记确定单元,用于若时间差小于预设计算时间阈值,则确定子任务存在计算标记。
在一个实施例中,上述计算标记检测模块302还可以包括:
开始标记写入单元,用于将预设的开始标记文件写入不存在计算标记的子任务。
文件计算单元,用于获取不存在计算标记的子任务中的数据文件,对数据文件进行计算。
结束标记写入单元,用于当计算完成后,将预设的结束标记文件写入不存在计算标记的子任务。
在一个实施例中,上述分布式任务处理装置还可以包括:
标准确定模块,用于若连续检测预设数量的子任务均存在计算标记,则确定目标任务中的各个子任务符合预设标准。
在一个实施例中,上述分布式任务处理装置还可以包括:
第一时刻确定模块,用于若目标任务存在完成标记,则确定完成标记的标记时刻和开始标记的标记时刻。
第一取消标记模块,用于若开始标记的标记时刻在完成标记的标记时刻之后,则取消目标任务的完成标记。
在一个实施例中,上述分布式任务处理装置还可以包括:
第二时刻确定模块,用于确定完成标记的标记时刻和开始标记的标记时刻。
第二取消标记模块,用于若开始标记的标记时刻在完成标记的标记时刻之前,则取消目标任务的开始标记。
本申请实施例中通过周期性对预设存储空间中的各个任务进行检测,促使终端设备自由检测需要进行处理的任务,当检测到存在目标任务时,再检测上述目标任务中的各个子任务的计算标记,并对不存在计算标记的子任务进行计算处理,从而提高目标任务的计算速度,上述目标任务为包含开始标记的任务;当检测到上述目标任务中的各个子任务符合预设标准时,说明目标任务已经处理完成,再对上述目标任务进行完成标记,以便于终端设备再次对预设存储空间中的各个任务进行检测时,明确目标任务已处理完成,从而通过将任务存储于存储空间中,促使终端设备自由检测存储空间中的需处理的任务,就算某一终端设备在处理子任务的过程中出现意外状况,其他终端设备也会在检测到目标任务时对未处理的子任务进行处理,进一步提升了任务处理过程中的稳定性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述系统实施例以及方法实施例中的对应过程,在此不再赘述。
图4为本申请实施例提供的终端设备的结构示意图。为了便于说明,仅示出了与本申请实施例相关的部分。
如图4所示,该实施例的终端设备4包括:至少一个处理器400(图4中仅示出一个),与上述处理器400连接的存储器401,以及存储在上述存储器401中并可在上述至少一个处理器400上运行的计算机程序402,例如分布式任务处理程序。上述处理器400执行上述计算机程序402时实现上述各个分布式任务处理方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,上述处理器400执行上述计算机程序402时实现上述各装置实施例中各模块的功能,例如图3所示模块301至303的功能。
示例性的,上述计算机程序402可以被分割成一个或多个模块,上述一个或者多个模块被存储在上述存储器401中,并由上述处理器400执行,以完成本申请。上述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述上述计算机程序402在上述终端设备4中的执行过程。例如,上述计算机程序402可以被分割成周期检测模块301、计算标记检测模块302、标记完成模块303,各模块具体功能如下:
周期检测模块301,用于周期性对预设存储空间中的各个任务进行检测;
计算标记检测模块302,用于当检测到存在目标任务时,检测目标任务中的各个子任务的计算标记,并对不存在计算标记的子任务进行计算处理;目标任务为包含开始标记的任务;
标记完成模块303,用于当检测到目标任务中的各个子任务符合预设标准时,对目标任务进行完成标记。
上述终端设备4可包括,但不仅限于,处理器400、存储器401。本领域技术人员可以理解,图4仅仅是终端设备4的举例,并不构成对终端设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备、总线等。
所称处理器400可以是中央处理单元(Central Processing Unit,CPU),该处理器400还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器401在一些实施例中可以是上述终端设备4的内部存储单元,例如终端设备4的硬盘或内存。上述存储器401在另一些实施例中也可以是上述终端设备4的外部存储设备,例如上述终端设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器401还可以既包括上述终端设备4的内部存储单元也包括外部存储设备。上述存储器401用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等,例如上述计算机程序的程序代码等。上述存储器401还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种分布式任务处理方法,其特征在于,包括:
周期性对预设存储空间中的各个任务进行检测;
当检测到存在目标任务时,检测所述目标任务中的各个子任务的计算标记,并对不存在计算标记的子任务进行计算处理;所述目标任务为包含开始标记的任务;
当检测到所述目标任务中的各个子任务符合预设标准时,对所述目标任务进行完成标记。
2.如权利要求1所述的分布式任务处理方法,其特征在于,所述检测所述目标任务中的各个子任务的计算标记,包括:
检测所述子任务中的文件;
若所述子任务中存在开始标记文件和结束标记文件,则确定所述子任务存在计算标记。
3.如权利要求1所述的分布式任务处理方法,其特征在于,所述检测所述目标任务中的各个子任务的计算标记,包括:
检测所述子任务中的文件;
若所述子任务中存在开始标记文件,且不存在结束标记文件,则获取当前时刻和所述开始标记文件的写入时刻;
计算所述写入时刻和所述当前时刻的时间差;
若所述时间差大于等于预设计算时间阈值,则确定所述子任务不存在计算标记;
若所述时间差小于预设计算时间阈值,则确定所述子任务存在计算标记。
4.如权利要求1所述的分布式任务处理方法,其特征在于,所述对不存在计算标记的子任务进行计算处理,包括:
将预设的开始标记文件写入所述不存在计算标记的子任务;
获取所述不存在计算标记的子任务中的数据文件,对所述数据文件进行计算;
当计算完成后,将预设的结束标记文件写入所述不存在计算标记的子任务。
5.如权利要求1所述的分布式任务处理方法,其特征在于,在检测到所述目标任务中的各个子任务符合预设标准之前,包括:
若连续检测预设数量的子任务均存在计算标记,则确定所述目标任务中的各个子任务符合预设标准。
6.如权利要求1所述的分布式任务处理方法,其特征在于,在检测到存在目标任务之后,还包括:
若所述目标任务存在完成标记,则确定所述完成标记的标记时刻和所述开始标记的标记时刻;
若所述开始标记的标记时刻在所述完成标记的标记时刻之后,则取消所述目标任务的完成标记。
7.如权利要求1所述的分布式任务处理方法,其特征在于,在对所述目标任务进行完成标记之后,还包括:
确定所述完成标记的标记时刻和所述开始标记的标记时刻;
若所述开始标记的标记时刻在所述完成标记的标记时刻之前,则取消所述目标任务的开始标记。
8.一种分布式任务处理装置,其特征在于,包括:
周期检测模块,用于周期性对预设存储空间中的各个任务进行检测;
计算标记检测模块,用于当检测到存在目标任务时,检测所述目标任务中的各个子任务的计算标记,并对不存在计算标记的子任务进行计算处理;所述目标任务为包含开始标记的任务;
标记完成模块,用于当检测到所述目标任务中的各个子任务符合预设标准时,对所述目标任务进行完成标记。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的一种分布式任务处理方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的一种分布式任务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111185695.1A CN115964137A (zh) | 2021-10-12 | 2021-10-12 | 一种分布式任务处理方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111185695.1A CN115964137A (zh) | 2021-10-12 | 2021-10-12 | 一种分布式任务处理方法、装置、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115964137A true CN115964137A (zh) | 2023-04-14 |
Family
ID=87353199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111185695.1A Pending CN115964137A (zh) | 2021-10-12 | 2021-10-12 | 一种分布式任务处理方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115964137A (zh) |
-
2021
- 2021-10-12 CN CN202111185695.1A patent/CN115964137A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
US8966460B2 (en) | Transmission point pattern extraction from executable code in message passing environments | |
US20120317577A1 (en) | Pattern Matching Process Scheduler with Upstream Optimization | |
WO2014014486A1 (en) | Pattern matching process scheduler in message passing environment | |
CN112035238A (zh) | 任务调度处理方法、装置、集群系统及可读存储介质 | |
CN106020984B (zh) | 电子设备中进程的创建方法及装置 | |
CN107977275B (zh) | 基于消息队列的任务处理方法及相关设备 | |
CN111598768B (zh) | 图像优化处理方法、装置、计算机设备及存储介质 | |
CN116483546B (zh) | 分布式训练任务调度方法、装置、设备及存储介质 | |
CN115964137A (zh) | 一种分布式任务处理方法、装置、终端设备及存储介质 | |
US11372633B2 (en) | Method, device and terminal apparatus for code execution and computer readable storage medium | |
EP4318211A1 (en) | Method for inspecting code under weak memory order architecture, and corresponding device | |
CN115809126A (zh) | 混合部署场景下的作业调度方法、装置及电子设备 | |
CN115509704A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
CN115220908A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN103593606A (zh) | 上下文信息管理方法及系统 | |
CN113961364A (zh) | 一种大规模锁系统实现方法、装置、存储介质和服务器 | |
CN114168275B (zh) | 任务调度方法、系统、终端设备及存储介质 | |
CN110879722B (zh) | 生成逻辑示意图的方法及装置、计算机可存储介质 | |
CN116737374A (zh) | 基于多线程的基准码识别方法、装置、计算机设备及介质 | |
US10990357B2 (en) | Application build automation | |
JPH09259090A (ja) | 分散処理計算機システム | |
CN114064315A (zh) | 任务处理方法、装置、电子设备及计算机可读存储介质 | |
CN117971433A (zh) | 任务调度方法、装置、电子设备及可读介质 | |
CN117075793A (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 |