CN111831422B - 一种任务处理方法及装置 - Google Patents
一种任务处理方法及装置 Download PDFInfo
- Publication number
- CN111831422B CN111831422B CN201910300649.8A CN201910300649A CN111831422B CN 111831422 B CN111831422 B CN 111831422B CN 201910300649 A CN201910300649 A CN 201910300649A CN 111831422 B CN111831422 B CN 111831422B
- Authority
- CN
- China
- Prior art keywords
- subtask
- task
- processing
- processed
- ith
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 146
- 238000000034 method Methods 0.000 claims abstract description 108
- 230000008569 process Effects 0.000 claims abstract description 88
- 238000012544 monitoring process Methods 0.000 claims description 35
- 230000003213 activating effect Effects 0.000 claims description 14
- 230000001360 synchronised effect Effects 0.000 description 16
- 238000001994 activation Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种任务处理方法和装置。所述方法包括:创建与待处理任务对应的第i个子任务;i为大于等于1的正整数;对所述第i个子任务进行处理;在所述第i个子任务处理成功的情况下,创建与所述待处理任务对应的第i+1个子任务;所述第i个子任务的处理顺序先于所述第i+1个子任务;对所述第i+1个子任务进行处理。本发明通过将一个完整的任务动态划分为多个子任务进行处理,能够有效降低瞬时处理过程对内存的消耗,并极大降低了任务执行的时间。
Description
技术领域
本发明涉及任务处理技术领域,特别是涉及一种任务处理方法及装置。
背景技术
LTE(Long Term Evolution,长期演进技术)通信网络中的eNB(Evolved NodeB,演进型基站)/RRU(Radio Remote Unit,射频拉远单元),需要不定期的进行软件版本升级,以达到提供新功能和特性并修复以前版本问题的要求。大型LTE通信网络中的eNB/RRU的数量是以万作单位的,对升级效率的要求很高。
当eNB和RRU需要升级时,OMC(Operation Maintance Center,操作维护中心)将已有的版本升级包导入到FTP服务器(File Transfer Protocol Server)中,通过向eNB/RRU下发升级命令把版本升级包从FTP服务器下载到eNB和RRU侧并使其生效,以达到升级设备版本的目的。
而上述软件升级过程中,从升级开始到升级结束的所有流程,是一个线性的过程,命令下发前的校验、命令下发、过程监控和结果处理作为一个整体流程进行处理,中途无法跳出,除非失败退出。设备软件的升级是一个耗时类的操作,常规至少会耗时10分钟以上,在网络条件一般的情况下,耗时会更长。在这种情况下,为了提升全网设备软件版本的升级效率,只有增大并发线程数,但是增加并发线程增加了对内存的消耗,并且也会浪费任务的执行时间。
发明内容
本发明实施例提供一种任务处理方法及装置,以解决现有技术中的在提高软件版本升级效率时需要增大并发线程数,增加任务执行时间的问题。
为了解决上述问题,本发明实施例公开了一种任务处理方法,包括:创建与待处理任务对应的第i个子任务;i为大于等于1的正整数;对所述第i个子任务进行处理;在所述第i个子任务处理成功的情况下,创建与所述待处理任务对应的第i+1个子任务;所述第i个子任务的处理顺序先于所述第i+1个子任务;对所述第i+1个子任务进行处理。
优选地,所述创建与待处理任务对应的第i个子任务的步骤,包括:调用线程池中的第一空闲线程,创建所述第i个子任务;所述对所述第i个子任务进行处理的步骤,包括:调用所述第一空闲线程,对所述第i个子任务进行处理;所述创建与所述待处理任务对应的第i+1个子任务的步骤,包括:调用所述线程池中的第二空闲线程,创建所述第i+1个子任务;所述对所述第i+1个子任务进行处理的步骤,包括:调用所述第二空闲线程,对所述第i+1个子任务进行处理。
优选地,在所述对所述第i个子任务进行处理的步骤之后,还包括:在对所述第i个子任务处理失败的情况下,结束对所述待处理任务的处理操作。
优选地,在所述对所述第i+1个子任务进行处理的步骤之后,还包括:判断所述第i+1个子任务是否为所述待处理任务的最后一个子任务;若是,则结束对所述待处理任务的处理操作。
优选地,所述第一空闲线程和所述第二空闲线程为同一空闲线程;或所述第一空闲线程和所述第二空闲线程为不同的空闲线程。
为了解决上述问题,本发明实施例公开了一种任务处理装置,包括:第一子任务创建模块,用于创建与待处理任务对应的第i个子任务;i为大于等于1的正整数;第一子任务处理模块,用于对所述第i个子任务进行处理;第二子任务创建模块,用于在所述第i个子任务处理成功的情况下,创建与所述待处理任务对应的第i+1个子任务;所述第i个子任务的处理顺序先于所述第i+1个子任务;第二子任务处理模块,用于对所述第i+1个子任务进行处理。
优选地,所述第一子任务创建模块包括:第一子任务创建子模块,用于调用线程池中的第一空闲线程,创建所述第i个子任务;所述第一子任务处理模块包括:第一子任务处理子模块,用于调用所述第一空闲线程,对所述第i个子任务进行处理;所述第二子任务创建模块包括:第二子任务创建子模块,用于调用所述线程池中的第二空闲线程,创建所述第i+1个子任务;所述第二子任务处理模块包括:第二子任务处理子模块,用于调用所述第二空闲线程,对所述第i+1个子任务进行处理。
优选地,还包括:第一处理操作结束模块,用于在对所述第i个子任务处理失败的情况下,结束对所述待处理任务的处理操作。
优选地,还包括:最后子任务判断模块,用于判断所述第i+1个子任务是否为所述待处理任务的最后一个子任务;第二处理操作结束模块,用于在所述第i+1个子任务为最后一个子任务时,结束对所述待处理任务的处理操作。
优选地,所述第一空闲线程和所述第二空闲线程为同一空闲线程;或所述第一空闲线程和所述第二空闲线程为不同的空闲线程。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例提供了一种任务处理方法及装置,通过创建与待处理任务对应的第i个子任务,i为大于等于1的正整数,对第i个子任务进行处理,在第i个子任务处理成功的情况下,创建与待处理任务对应的第i+1个子任务,且第i个子任务的处理顺序先于第i+1个子任务,并对第i+1个子任务进行处理。本发明实施例通过将一个完整的任务动态划分为多个子任务进行处理,能够有效降低瞬时处理过程对内存的消耗,并极大降低了任务执行的时间。
附图说明
图1示出了本发明实施例提供的一种任务处理方法的步骤流程图;
图2示出了本发明实施例提供的一种任务处理方法的步骤流程图;
图3示出了本发明实施例提供的一种任务处理装置的结构示意图;
图4示出了本发明实施例提供的一种任务处理装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
参照图1,示出了本发明实施例提供的一种任务处理方法的步骤流程图,具体可以包括如下步骤:
步骤101:创建与待处理任务对应的第i个子任务;i为大于等于1的正整数。
在本发明实施例中,待处理任务是指可以划分成由线程执行的多个子任务的的任务,例如,待处理任务可以为软件升级任务,如RRU软件版本的升级,或者,eNB软件版本的升级等等,具体地,可以根据业务需求而定,本发明实施例对此不加以限制。
i为大于等于的正整数,i可以为1、2、3等,具体地,可以根据实际情况而定,例如,在待处理任务可以划分为5个子任务时,i可以为1、2、3、4等,待处理任务所划分得到的子任务的创建时机及执行时机是由先后顺序的,即在第一个子任务创建完成,并处理成功之后,才会创建第二个子任务,并执行第二个子任务,而在第二个子任务处理成功之后,再创建第三个子任务...以此类推,直到将待处理任务可以划分得到的子任务全部处理成功,即成功完成了对待处理任务的处理。
对于上述过程将在下述步骤中进行详细描述,本发明实施例在此不再加以赘述。
在创建与待处理任务对应的第i个子任务之后,执行步骤102。
步骤102:对所述第i个子任务进行处理。
在创建与待处理任务对应的第i个子任务之后,可以对第i个子任务进行处理。
具体地,可以预先设置线程池,在线程池中记录了预先创建的各个线程的状态,包括:空闲状态和非空闲状态,在需要对第i个子任务进行处理时,可以调用线程池中处于空闲状态的线程对第i个子任务进行处理,例如,软件升级任务包括:下载命令下发子任务、下载过程监控子任务、同步命令下发子任务,在第i个子任务为下载命令下发子任务时,可以调用线程池中处于空闲状态的线程,执行下载命令下发子任务,即调用空闲线程下发下载命令。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在对第i个子任务进行处理之后,执行步骤103。
步骤103:在所述第i个子任务处理成功的情况下,创建与所述待处理任务对应的第i+1个子任务;所述第i个子任务的处理顺序先于所述第i+1个子任务。
在本发明实施例中,待处理任务动态划分成的多个子任务具有相应的处理顺序,第i+1个子任务即为处理顺序在且仅位于第i个子任务之后的子任务,例如,待处理任务A可以划分成四个子任务,分别为a、b、c、d,且上述划分的子任务的处理顺序依次为a、b、c、d,而在第i个子任务为a时,则第i+1个子任务即为b;而在第i个子任务为b时,则第i+1个子任务即为c;而在第i个子任务为c时,则第i+1个子任务即为d等。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
对于待处理任务可以划分的多个子任务,除了具有对应的处理顺序之外,还可以在对处理顺序靠前的子任务处理完成之后,才会执行下一子任务的创建及处理过程。
而在对第i个子任务处理失败时,则不再创建第i+1个子任务,即不存在后续的处理过程。
而在对第i个子任务处理成功时,则创建第i+1个子任务。
在创建与待处理任务对应的第i+1个子任务之后,执行步骤104。
步骤104:对所述第i+1个子任务进行处理。
在创建与待处理任务对应的第i+1个子任务之后,可以对第i+1个子任务进行处理,具体地,可以调用线程池中的空闲线程对第i+1个子任务进行处理。
在对i+1个子任务进行处理之后,可以判断第i+1个子任务是否为待处理任务的最后一个子任务,若是,则结束对待处理任务的处理操作。
而在此过程中,无需判断是否对第i+1个子任务是否处理成功。
而在第i+1个子任务并非最后一个子任务时,可以判断是否对第i+1个子任务是否处理成功,在对第i+1个子任务处理失败时,则结束对待处理任务的处理操作。而在对第i+1个子任务处理成功时,则可以创建第i+2个子任务,然后对第i+2个子任务进行处理…以此类推,直至完成对待处理任务的处理操作。
本发明实施例通过将一个完整的任务进行动态划分成多个子任务,并在处理顺序靠前的子任务处理完成之后,才会触发创建下一个子任务,并对下一个子任务进行处理,本发明能够有效降低瞬时处理过程对内存的消耗,并极大降低了任务执行的时间。
本发明实施例提供的任务处理方法,通过创建与待处理任务对应的第i个子任务,i为大于等于1的正整数,对第i个子任务进行处理,在第i个子任务处理成功的情况下,创建与待处理任务对应的第i+1个子任务,且第i个子任务的处理顺序先于第i+1个子任务,并对第i+1个子任务进行处理。本发明实施例通过将一个完整的任务动态划分为多个子任务进行处理,能够有效降低瞬时处理过程对内存的消耗,并极大降低了任务执行的时间。
实施例二
参照图2,示出了本发明实施例提供的一种任务处理方法的步骤流程图,具体可以包括如下步骤:
步骤201:调用线程池中的第一空闲线程,创建所述第i个子任务。
在本发明实施例中,待处理任务是指可以划分成由线程执行的多个子任务的的任务,例如,待处理任务可以为软件升级任务,如RRU软件版本的升级,或者,eNB软件版本的升级等等,具体地,可以根据业务需求而定,本发明实施例对此不加以限制。
i为大于等于的正整数,i可以为1、2、3等,具体地,可以根据实际情况而定,例如,在待处理任务可以划分为5个子任务时,i可以为1、2、3、4等,待处理任务所划分得到的子任务的创建时机及执行时机是由先后顺序的,即在第一个子任务创建完成,并处理成功之后,才会创建第二个子任务,并执行第二个子任务,而在第二个子任务处理成功之后,再创建第三个子任务...以此类推,直到将待处理任务可以划分得到的子任务全部处理成功,即成功完成了对待处理任务的处理。
线程池是指预先创建于***中的用于存储线程的内存空间。
线程池中存储的线程可以包括两个状态,即空闲状态和非空闲状态。
第一空闲线程即为线程池中的一个处于空闲状态的线程,例如,线程池中包含线程1、线程2和线程3,线程2和线程3为空闲线程,线程1为非空闲线程,则可以将线程2作为第一空闲线程,也可以将线程3作为第一空闲线程。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在线程池中存在多个空闲线程时,本领域技术人员可以根据实际需要选择处于空闲状态的线程作为第一空闲线程,具体地,可以根据实际情况而定,本发明实施例对此不加以限制。
在需要创建与待处理任务对应的第i个子任务时,可以调用线程池中的第一空闲线程创建第i个子任务。
在调用第一空闲线程创建第i个子任务之后,执行步骤202。
步骤202:调用所述第一空闲线程,对所述第i个子任务进行处理。
在创建第i个子任务之后,可以调用第一空闲线程对第i个子任务进行处理,即调用第一空闲线程创建第i个子任务之后,可以继续利用第一空闲线程对第i个子任务进行处理,例如,软件升级任务包括:下载命令下发子任务、下载过程监控子任务、同步命令下发子任务,在第i个子任务为下载命令下发子任务时,可以调用第一空闲线程,执行下载命令下发子任务的创建,然后调用第一空闲线程下发下载命令。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在调用第一空闲线程对第i个子任务进行处理之后,执行步骤203。
步骤203:在对所述第i个子任务处理失败的情况下,结束对所述待处理任务的处理操作。
在调用第一空闲线程对第i个子任务进行处理之后,可以判断第i个子任务是否处理成功。例如,在第i个子任务为下载命令下发子任务时,可以通过监测下载命令是否下发成功,以判定下载命令下发子任务是否处理成功,即在下载命令下发成功时,则下载命令下发子任务处理成功;而在下载命令下发失败时,则下载命令下发子任务处理失败。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在对第i个子任务处理失败时,则结束对待处理任务的处理操作,即在第i个子任务处理失败的情况下,则不再创建与待处理任务对应的第i+1个子任务,结束了对待处理任务的处理。
步骤204:在所述第i个子任务处理成功的情况下,调用所述线程池中的第二空闲线程,创建所述第i+1个子任务。
在本发明实施例中,待处理任务动态划分成的多个子任务具有相应的处理顺序,第i+1个子任务即为处理顺序在且仅位于第i个子任务之后的子任务,例如,待处理任务A可以划分成四个子任务,分别为a、b、c、d,且上述划分的子任务的处理顺序依次为a、b、c、d,而在第i个子任务为a时,则第i+1个子任务即为b;而在第i个子任务为b时,则第i+1个子任务即为c;而在第i个子任务为c时,则第i+1个子任务即为d等。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
对于待处理任务可以划分的多个子任务,除了具有对应的处理顺序之外,还可以在对处理顺序靠前的子任务处理完成之后,才会执行下一子任务的创建及处理过程。
第二空闲线程即为线程池中处于空闲状态的线程。
第二空闲线程和第一空闲线程可以为同一空闲线程,也可以为线程池中两个不同的线程,具体地,可以根据实际情况而定,本发明实施例对此不加以限制。
在对第i个子任务处理成功之后,可以调用线程池中的第二空闲线程创建与待处理任务对应的第i+1个子任务,并执行步骤205。
步骤205:调用所述第二空闲线程,对所述第i+1个子任务进行处理。
在创建第i+1个子任务之后,可以调用第二空闲线程对第i+1个子任务进行处理,即调用第二空闲线程创建第i+1个子任务之后,可以继续利用第二空闲线程对第i+1个子任务进行处理,例如,软件升级任务包括:下载命令下发子任务、下载过程监控子任务、同步命令下发子任务,在第i+1个子任务为下载过程监控子任务时,可以调用第二空闲线程,执行下载过程监控子任务的创建,然后调用第二空闲线程执行下载过程监控子任务,以对软件下载过程进行监控。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在调用第二空闲线程对第i+1个子任务进行处理之后,执行步骤206。
步骤206:判断所述第i+1个子任务是否为所述待处理任务的最后一个子任务。
在调用第二空闲线程对第i+1个子任务进行处理之后,可以判断第i+1个子任务是否为待处理任务对应的最后一个子任务,例如,待处理任务对应的子任务包括子任务1、子任务2和子任务3,上述子任务的处理顺序依次为子任务1、子任务2和子任务3,在第i+1个子任务为子任务2时,则第i+1个子任务并非待处理任务的最后一个子任务;而在第i+1个子任务为子任务3时,则第i+1个子任务为待处理任务的最后一个子任务。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在判断第i+1个子任务是否为待处理任务的最后一个子任务之后,执行步骤207。
步骤207:结束对所述待处理任务的处理操作。
在第i+1个子任务并非待处理任务的最后子任务时,则可以调用线程池中的一个处于空闲状态的线程,创建与待处理任务对应的第i+2个子任务,然后调用该空闲状态的线程对第i+2个子任务进行处理,具体地处理过程可以参照上述对第i+1个子任务的处理过程,本发明实施例在此不再加以赘述。
而在第i+1个子任务为待处理任务的最后一个子任务时,则结束对待处理任务的处理操作。
在第i+1个子任务为待处理任务的最后一个子任务时,此时不需要关心是否对第i+1个子任务的处理是否成功,即无论第i+1个子任务的处理成功还是失败,均结束了对待处理任务对应的子任务的处理操作。
接下来,结合软件升级任务对本发明的上述过程进行详细描述。
软件升级任务可以划分为下载命令下发子任务、下载过程监控子任务、同步命令下发子任务、同步过程监控子任务、激活命令下发子任务和激活过程监控子任务,且上述子任务的处理顺序依次为:下载命令下发子任务、下载过程监控子任务、同步命令下发子任务、同步过程监控子任务、激活命令下发子任务和激活过程监控子任务。
在需要对软件(如eNB或RRU软件)进行升级时,可以调用线程池的一个处于空闲状态的线程创建下载命令下发子任务,然后,调用该空闲线程对下载命令下发子任务进行处理。
在对下载命令下发子任务处理完成之后,可以判断是否对下载命令下发子任务处理成功,在下载命令下发子任务处理失败时,则结束软件升级的任务。
而在下载命令下发子任务处理成功时,则可以再调用线程池中的一个处于空闲状态的线程,创建下载过程监控子任务,然后调用该空闲状态的线程对下载过程监控子任务进行处理。
在对下载过程监控子任务处理完成之后,可以判断是否对下载过程监控子任务处理成功,在下载过程监控子任务处理失败时,则结束软件升级的任务。
而在下载过程监控子任务处理成功时,则可以再调用线程池中的一个处于空闲状态的线程,创建同步命令下发子任务,然后调用该空闲状态的线程对同步命令下发子任务进行处理。
在对同步命令下发子任务处理完成之后,可以判断是否对同步命令下发子任务处理成功,在同步命令下发子任务处理失败时,则结束软件升级的任务。
而在同步命令下发子任务处理成功时,可以再调用线程池中的一个处于空闲状态的线程,创建同步过程监控子任务,然后再调用该空闲状态的线程对同步命令下发子任务进行处理。
在对同步过程监控子任务处理完成之后,可以判断是否对同步过程监控子任务处理成功,在同步过程监控子任务处理失败时,则结束软件升级的任务。
而在对同步过程监控子任务处理成功时,可以再调用线程池中的一个处于空闲状态的线程,创建激活命令下发子任务,然后再调用该空闲状态的线程对激活命令下发子任务进行处理。
在对激活命令下发子任务处理完成之后,可以判断是否对激活命令下发子任务处理成功,在激活命令下发子任务处理失败时,则结束软件升级的任务。
而在对激活命令下发子任务处理成功时,可以再调用线程池中的一个处于空闲状态的线程,创建激活过程监控子任务,然后再调用该空闲状态的线程对激活过程监控子任务进行处理。
在对激活过程监控子任务处理完成之后,可以判断是否对激活过程监控子任务处理成功,在激活过程监控子任务处理失败或成功时,均结束软件升级的任务。
而在实际应用中,在对每个子任务处理完成之后,均需要判断处理完成的子任务是否为待处理任务的最后一个子任务,而在处理完成的子任务为待处理任务的最后一个子任务时,则结束对待处理任务的处理操作。
本发明实施例通过在软件升级过程中,根据一个任务处理的结果动态决定是否新建下一个流程的软件任务。这种动态创建任务的方式有效避免了初始全部创建所有过程的任务所带来的调度混乱问题和内存额外消耗问题,简化了任务调度的复杂性,降低了任务在瞬时对内存的消耗。
并且,把一个线性多步骤耗时任务独占一个线程的方式改变为多个存在逻辑关系的任务共享一个线程的方式。先前流程中的休眠时间被用于处理其他网元的升级任务,叠加多个网元任务(软件升级是对多个网元升级的)的累积效应,则极大缩短了任务执行所消耗的时间。
本发明实施例提供的任务处理方法,通过创建与待处理任务对应的第i个子任务,i为大于等于1的正整数,对第i个子任务进行处理,在第i个子任务处理成功的情况下,创建与待处理任务对应的第i+1个子任务,且第i个子任务的处理顺序先于第i+1个子任务,并对第i+1个子任务进行处理。本发明实施例通过将一个完整的任务动态划分为多个子任务进行处理,能够有效降低瞬时处理过程对内存的消耗,并极大降低了任务执行的时间。
实施例三
参照图3,示出了本发明实施例提供的一种任务处理装置的结构示意图,具体可以包括:
第一子任务创建模块310,用于创建与待处理任务对应的第i个子任务;i为大于等于1的正整数;第一子任务处理模块320,用于对所述第i个子任务进行处理;第二子任务创建模块330,用于在所述第i个子任务处理成功的情况下,创建与所述待处理任务对应的第i+1个子任务;所述第i个子任务的处理顺序先于所述第i+1个子任务;第二子任务处理模块340,用于对所述第i+1个子任务进行处理。
本发明实施例提供的任务处理装置,通过创建与待处理任务对应的第i个子任务,i为大于等于1的正整数,对第i个子任务进行处理,在第i个子任务处理成功的情况下,创建与待处理任务对应的第i+1个子任务,且第i个子任务的处理顺序先于第i+1个子任务,并对第i+1个子任务进行处理。本发明实施例通过将一个完整的任务动态划分为多个子任务进行处理,能够有效降低瞬时处理过程对内存的消耗,并极大降低了任务执行的时间。
实施例四
参照图4,示出了本发明实施例提供的一种任务处理装置的结构示意图,具体可以包括:
第一子任务创建模块410,用于创建与待处理任务对应的第i个子任务;i为大于等于1的正整数;第一子任务处理模块420,用于对所述第i个子任务进行处理;第一处理操作结束模块430,用于在对所述第i个子任务处理失败的情况下,结束对所述待处理任务的处理操作;第二子任务创建模块440,用于在所述第i个子任务处理成功的情况下,创建与所述待处理任务对应的第i+1个子任务;所述第i个子任务的处理顺序先于所述第i+1个子任务;第二子任务处理模块450,用于对所述第i+1个子任务进行处理;最后子任务判断模块460,用于判断所述第i+1个子任务是否为所述待处理任务的最后一个子任务;第二处理操作结束模块470,用于在所述第i+1个子任务为最后一个子任务时,结束对所述待处理任务的处理操作.
优选地,所述第一子任务创建模块410包括:第一子任务创建子模块4101,用于调用线程池中的第一空闲线程,创建所述第i个子任务;所述第一子任务处理模块420包括:第一子任务处理子模块4201,用于调用所述第一空闲线程,对所述第i个子任务进行处理;所述第二子任务创建模块440包括:第二子任务创建子模块4401,用于调用所述线程池中的第二空闲线程,创建所述第i+1个子任务;所述第二子任务处理模块450包括:第二子任务处理子模块4501,用于调用所述第二空闲线程,对所述第i+1个子任务进行处理。
优选地,所述第一空闲线程和所述第二空闲线程为同一空闲线程;或所述第一空闲线程和所述第二空闲线程为不同的空闲线程。
本发明实施例提供的任务处理装置,通过创建与待处理任务对应的第i个子任务,i为大于等于1的正整数,对第i个子任务进行处理,在第i个子任务处理成功的情况下,创建与待处理任务对应的第i+1个子任务,且第i个子任务的处理顺序先于第i+1个子任务,并对第i+1个子任务进行处理。本发明实施例通过将一个完整的任务动态划分为多个子任务进行处理,能够有效降低瞬时处理过程对内存的消耗,并极大降低了任务执行的时间。
具体可对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种任务处理方法和一种任务处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种任务处理方法,其特征在于,包括:
创建与待处理任务对应的第i个子任务;i为大于等于1的正整数;所述待处理任务为软件升级任务;
对所述第i个子任务进行处理;
在所述第i个子任务处理成功的情况下,创建与所述待处理任务对应的第i+1个子任务;所述第i个子任务的处理顺序先于所述第i+1个子任务;
对所述第i+1个子任务进行处理;
在对所述第i个子任务处理失败的情况下,结束对所述待处理任务的处理操作;
其中,所述软件为eNB软件和RRU软件中的任一种,所述软件升级任务的子任务按照执行顺序依次为:下载命令下发子任务、下载过程监控子任务、同步命令下发子任务、同步过程监控子任务、激活命令下发子任务和激活过程监控子任务,在执行上述子任务时,只有在当前子任务执行成功之后才执行下一个子任务,在当前子任务执行失败时,则结束软件升级任务。
2.根据权利要求1所述的方法,其特征在于,所述创建与待处理任务对应的第i个子任务的步骤,包括:
调用线程池中的第一空闲线程,创建所述第i个子任务;
所述对所述第i个子任务进行处理的步骤,包括:
调用所述第一空闲线程,对所述第i个子任务进行处理;
所述创建与所述待处理任务对应的第i+1个子任务的步骤,包括:
调用所述线程池中的第二空闲线程,创建所述第i+1个子任务;
所述对所述第i+1个子任务进行处理的步骤,包括:
调用所述第二空闲线程,对所述第i+1个子任务进行处理。
3.根据权利要求1所述的方法,其特征在于,在所述对所述第i+1个子任务进行处理的步骤之后,还包括:
判断所述第i+1个子任务是否为所述待处理任务的最后一个子任务;
若是,则结束对所述待处理任务的处理操作。
4.根据权利要求2所述的方法,其特征在于,所述第一空闲线程和所述第二空闲线程为同一空闲线程;或所述第一空闲线程和所述第二空闲线程为不同的空闲线程。
5.一种任务处理装置,其特征在于,包括:
第一子任务创建模块,用于创建与待处理任务对应的第i个子任务;i为大于等于1的正整数;所述待处理任务为软件升级任务;
第一子任务处理模块,用于对所述第i个子任务进行处理;
第二子任务创建模块,用于在所述第i个子任务处理成功的情况下,创建与所述待处理任务对应的第i+1个子任务;所述第i个子任务的处理顺序先于所述第i+1个子任务;
第二子任务处理模块,用于对所述第i+1个子任务进行处理;
第一处理操作结束模块,用于在对所述第i个子任务处理失败的情况下,结束对所述待处理任务的处理操作;
其中,所述软件为eNB软件和RRU软件中的任一种,所述软件升级任务的子任务按照执行顺序依次为:下载命令下发子任务、下载过程监控子任务、同步命令下发子任务、同步过程监控子任务、激活命令下发子任务和激活过程监控子任务,在执行上述子任务时,只有在当前子任务执行成功之后才执行下一个子任务,在当前子任务执行失败时,则结束软件升级任务。
6.根据权利要求5所述的装置,其特征在于,所述第一子任务创建模块包括:
第一子任务创建子模块,用于调用线程池中的第一空闲线程,创建所述第i个子任务;
所述第一子任务处理模块包括:
第一子任务处理子模块,用于调用所述第一空闲线程,对所述第i个子任务进行处理;
所述第二子任务创建模块包括:
第二子任务创建子模块,用于调用所述线程池中的第二空闲线程,创建所述第i+1个子任务;
所述第二子任务处理模块包括:
第二子任务处理子模块,用于调用所述第二空闲线程,对所述第i+1个子任务进行处理。
7.根据权利要求5所述的装置,其特征在于,还包括:
最后子任务判断模块,用于判断所述第i+1个子任务是否为所述待处理任务的最后一个子任务;
第二处理操作结束模块,用于在所述第i+1个子任务为最后一个子任务时,结束对所述待处理任务的处理操作。
8.根据权利要求6所述的装置,其特征在于,所述第一空闲线程和所述第二空闲线程为同一空闲线程;或所述第一空闲线程和所述第二空闲线程为不同的空闲线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910300649.8A CN111831422B (zh) | 2019-04-15 | 2019-04-15 | 一种任务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910300649.8A CN111831422B (zh) | 2019-04-15 | 2019-04-15 | 一种任务处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111831422A CN111831422A (zh) | 2020-10-27 |
CN111831422B true CN111831422B (zh) | 2024-04-30 |
Family
ID=72915333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910300649.8A Active CN111831422B (zh) | 2019-04-15 | 2019-04-15 | 一种任务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831422B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591721A (zh) * | 2011-12-30 | 2012-07-18 | 北京新媒传信科技有限公司 | 一种分配线程执行任务的方法和*** |
CN104572277A (zh) * | 2014-12-17 | 2015-04-29 | 大唐移动通信设备有限公司 | 一种线程流控方法和装置 |
CN108255607A (zh) * | 2018-01-08 | 2018-07-06 | 武汉斗鱼网络科技有限公司 | 任务处理方法、装置、电子终端及可读存储介质 |
CN108804215A (zh) * | 2018-06-12 | 2018-11-13 | 北京奇艺世纪科技有限公司 | 一种任务处理方法、装置以及电子设备 |
WO2018219480A1 (en) * | 2017-05-29 | 2018-12-06 | Barcelona Supercomputing Center - Centro Nacional De Supercomputación | Managing task dependency |
CN109308214A (zh) * | 2017-07-27 | 2019-02-05 | 北京京东尚科信息技术有限公司 | 数据任务处理方法和*** |
-
2019
- 2019-04-15 CN CN201910300649.8A patent/CN111831422B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591721A (zh) * | 2011-12-30 | 2012-07-18 | 北京新媒传信科技有限公司 | 一种分配线程执行任务的方法和*** |
CN104572277A (zh) * | 2014-12-17 | 2015-04-29 | 大唐移动通信设备有限公司 | 一种线程流控方法和装置 |
WO2018219480A1 (en) * | 2017-05-29 | 2018-12-06 | Barcelona Supercomputing Center - Centro Nacional De Supercomputación | Managing task dependency |
CN109308214A (zh) * | 2017-07-27 | 2019-02-05 | 北京京东尚科信息技术有限公司 | 数据任务处理方法和*** |
CN108255607A (zh) * | 2018-01-08 | 2018-07-06 | 武汉斗鱼网络科技有限公司 | 任务处理方法、装置、电子终端及可读存储介质 |
CN108804215A (zh) * | 2018-06-12 | 2018-11-13 | 北京奇艺世纪科技有限公司 | 一种任务处理方法、装置以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111831422A (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101222709B (zh) | 一种手机应用程序快速启动的方法 | |
CN110225078B (zh) | 一种应用服务更新方法、***及终端设备 | |
CN101135981A (zh) | 一种实现批量报表生成的方法及装置 | |
CN108809683B (zh) | 部署云应用***的方法及装置 | |
CN110457197B (zh) | 服务测试方法、装置、计算机设备和存储介质 | |
CN105487924A (zh) | 一种批处理控制方法及装置 | |
CN110750343B (zh) | 集群***定时任务调度控制方法及集群*** | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN104657150A (zh) | 一种集群环境下的自动化运维方法 | |
CN112506624A (zh) | 定时任务调度***、方法及相应计算机设备和存储介质 | |
CN112416969A (zh) | 分布式数据库中的并行任务调度*** | |
CN110704172B (zh) | 集群***定时任务调度方法及集群*** | |
CN115001990A (zh) | 一种基于声明式API的跨地域openstack集群管理方法及*** | |
CN104702534A (zh) | 一种实现多进程共享端口的数据处理的方法及装置 | |
CN111831422B (zh) | 一种任务处理方法及装置 | |
CN103178974A (zh) | 故障处理***及方法 | |
US9032251B2 (en) | Re-forming an application control tree without terminating the application | |
WO2023185390A1 (zh) | 基站版本下载的方法、网管服务器、基站、设备和介质 | |
CN110413398B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN112131188A (zh) | 批量文件分发处理方法及装置 | |
CN111767122A (zh) | 分布式任务调度管理方法和装置 | |
CN108880860B (zh) | 一种策略管理方法及装置 | |
CN115840642A (zh) | 一种边缘资源处理方法、装置、***、设备和介质 | |
CN104657204A (zh) | 短任务处理方法、装置及操作*** | |
CN115098255A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |