CN114217954A - 作业调度方法、装置、计算机设备、存储介质 - Google Patents
作业调度方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN114217954A CN114217954A CN202111375315.0A CN202111375315A CN114217954A CN 114217954 A CN114217954 A CN 114217954A CN 202111375315 A CN202111375315 A CN 202111375315A CN 114217954 A CN114217954 A CN 114217954A
- Authority
- CN
- China
- Prior art keywords
- job
- thread
- overtime
- state
- scheduling
- 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
- 238000000034 method Methods 0.000 title claims abstract description 108
- 238000012545 processing Methods 0.000 claims abstract description 131
- 230000008569 process Effects 0.000 claims abstract description 55
- 238000004590 computer program Methods 0.000 claims abstract description 25
- 230000001960 triggered effect Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 11
- 230000010365 information processing Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 2
- 239000010453 quartz Substances 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种作业调度方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取对作业的调度请求,响应于调度请求,确定作业对应的线程数,根据线程数启动处理作业所需的线程;通过线程对作业进行处理,在对作业进行处理的过程中,获取作业的作业状态;当作业中存在作业状态为超时状态的超时作业时,根据超时作业从线程中释放与超时作业相匹配的线程,将超时作业重新添加至作业队列中;在超时作业的处理时间到达时,重复上述步骤对超时作业进行处理,直至作业处理完毕。采用本方法能够在对作业进行处理的过程中,根据作业所需的线程数动态调整线程,释放超时作业的线程,提高线程执行效率,从而提高企业系统处理作业的效率。
Description
技术领域
本申请涉及大数据资源调度技术领域,特别是涉及一种作业调度方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着小型企业或初创型企业的业务发展,企业系统批量处理的作业越来越多,企业系统运营维护开销越来越大。因此,企业为了节省成本开支,一般会在企业系统中自研调度平台来处理批量作业。
传统技术中,企业系统的调度平台通常在每个功能分支上都写一个简单的定时作业处理业务逻辑,通过多个定时作业处理业务逻辑分别对每个功能分支上的作业进行作业调度处理,但调度平台的定时作业过多容易造成服务器内存不足,使得服务器无法创建新的线程,导致企业系统处理作业的效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高系统处理效率的作业调度方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种作业调度方法。所述方法包括:
获取对作业的调度请求,响应于所述调度请求,确定所述作业对应的线程数,根据所述线程数启动处理所述作业所需的线程;
通过所述线程对所述作业进行处理,在对所述作业进行处理的过程中,获取所述作业的作业状态;
当所述作业中存在所述作业状态为超时状态的超时作业时,根据所述超时作业从所述线程中释放与所述超时作业相匹配的线程,将所述超时作业重新添加至作业队列中;
在所述超时作业的处理时间到达时,重复上述步骤对所述超时作业进行处理,直至所述作业处理完毕。
在其中一个实施例中,所述获取所述作业的作业状态,包括:
在对所述作业进行处理的过程中,根据当前时刻以及对所述作业进行处理的处理开始时刻,生成所述作业的当前状态,所述当前状态包括新建、处理中、超时状态;
调用超时扫描线程,通过所述超时扫描线程扫描得到所述作业的所述当前状态。
在其中一个实施例中,所述通过所述线程对所述作业进行处理,在对所述作业进行处理的过程中,获取所述作业的作业状态,包括:
通过所述线程将所述作业从作业调度平台调度至作业系统,在调度的过程中,确定所述线程对所述作业进行调度的调度开始时间,以及所述作业系统接收到所述作业的调度完成时间;
根据所述调度开始时间以及所述调度完成时间,确定所述作业的作业状态,所述作业状态包括超时状态、未超时状态。
在其中一个实施例中,所述获取对作业的调度请求,包括:
获取所述作业调度平台定时触发的对所述作业的调度请求;
或者,
响应于用户通过业务平台触发的对所述作业的调度操作,获取对所述作业的调度请求。
在其中一个实施例中,在所述根据所述超时作业从所述线程中释放与所述超时作业相匹配的线程之后,还包括:
生成所述作业的作业记录状态,所述作业记录状态为超时。
在其中一个实施例中,在所述直至所述作业处理完毕之后,还包括:
获取所述作业的当前作业状态,当所述作业的当前作业状态为未超时状态时,从所述线程中释放与所述作业相匹配的线程,并将所述作业的作业记录状态从超时更新为成功。
在其中一个实施例中,所述方法还包括:
获取所述作业的作业配置信息,所述作业配置信息包括初始线程数;
当根据所述线程数启动处理所述作业所需的线程时,在所述初始线程数上增加所述线程数的数量;
当从所述线程中释放与所述超时作业相匹配的线程时,在当前的所述线程数上减少与所述超时作业相匹配的线程的数量。
第二方面,本申请还提供了一种作业调度装置。所述装置包括:
调度请求响应模块,用于获取对作业的调度请求,响应于所述调度请求,确定所述作业对应的线程数,根据所述线程数启动处理所述作业所需的线程;
作业状态获取模块,用于通过所述线程对所述作业进行处理,在对所述作业进行处理的过程中,获取所述作业的作业状态;
超时作业处理模块,用于当所述作业中存在所述作业状态为超时状态的超时作业时,根据所述超时作业从所述线程中释放与所述超时作业相匹配的线程,将所述超时作业重新添加至作业队列中;在所述超时作业的处理时间到达时,重复上述步骤对所述超时作业进行处理,直至所述作业处理完毕。
在其中一个实施例中,所述作业状态获取模块包括:
作业状态生成单元,用于在对所述作业进行处理的过程中,根据当前时刻以及对所述作业进行处理的处理开始时刻,生成所述作业的当前状态,所述当前状态包括新建、处理中、超时状态;
超时线程扫描单元,用于调用超时扫描线程,通过所述超时扫描线程扫描得到所述作业的所述当前状态。
在其中一个实施例中,所述作业状态获取模块包括:
调度时间确定单元,用于通过所述线程将所述作业从作业调度平台调度至作业系统,在调度的过程中,确定所述线程对所述作业进行调度的调度开始时间,以及所述作业系统接收到所述作业的调度完成时间;
作业状态确定单元,用于根据所述调度开始时间以及所述调度完成时间,确定所述作业的作业状态,所述作业状态包括超时状态、未超时状态。
在其中一个实施例中,所述调度请求响应模块包括:
平台触发单元,用于获取所述作业调度平台定时触发的对所述作业的调度请求;
用户触发单元,用于响应于用户通过业务平台触发的对所述作业的调度操作,获取对所述作业的调度请求。
在其中一个实施例中,所述超时作业处理模块还包括:
作业记录状态生成单元,用于在所述根据所述超时作业从所述线程中释放与所述超时作业相匹配的线程之后,生成所述作业的作业记录状态,所述作业记录状态为超时。
在其中一个实施例中,所述装置还包括:
作业记录状态更新模块,用于在所述直至所述作业处理完毕之后,获取所述作业的当前作业状态,当所述作业的当前作业状态为未超时状态时,从所述线程中释放与所述作业相匹配的线程,并将所述作业的作业记录状态从超时更新为成功。
在其中一个实施例中,所述装置还包括:
作业配置信息获取模块,用于获取所述作业的作业配置信息,所述作业配置信息包括初始线程数;
初始线程数更改模块,用于当根据所述线程数启动处理所述作业所需的线程时,在所述初始线程数上增加所述线程数的数量;
当从所述线程中释放与所述超时作业相匹配的线程时,在当前的所述线程数上减少与所述超时作业相匹配的线程的数量。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项实施例所述的作业调度方法。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项实施例所述的作业调度方法。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面任一项实施例所述的作业调度方法。
上述作业调度方法、装置、计算机设备、存储介质和计算机程序产品,通过获取对作业的调度请求,根据作业对应的线程数确定启动处理作业的线程的数量,通过线程对作业进行处理,获取作业的作业状态,当作业状态为超时状态时,释放与超时作业相匹配的线程,将超时作业重新添加至作业队列中,在超时作业的处理时间到达时,重复上述步骤对超时作业进行处理,直至作业处理完毕,能够在对作业进行处理的过程中,根据作业所需的线程数动态调整线程,释放超时作业的线程,提高线程执行效率,从而提高企业系统处理作业的效率。
附图说明
图1为一个实施例中作业调度方法的流程示意图;
图2为一个实施例中获取作业状态步骤的流程示意图;
图3为另一个实施例中获取作业状态步骤的流程示意图;
图4为一个实施例中对线程数进行更新步骤的流程示意图;
图5a为另一个实施例中作业调度方法的流程示意图;
图5b为另一个实施例中作业调度方法的流程示意图;
图6为一个实施例中作业调度装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种作业调度方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。其中,上述终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能电视、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
本实施例中,该方法包括以下步骤:
步骤S102,获取对作业的调度请求,响应于调度请求,确定作业对应的线程数,根据线程数启动处理作业所需的线程。
其中,调度请求可以用于表征对待处理作业进行调度的请求。线程数可以用于表征处理作业所需线程的数量。线程数可以包括最大线程数以及当前线程数。最大线程数可以用于表示系统设定的线程上限值,当系统中的线程数超过最大线程数时,无法创建新的线程。当前线程数可以用于表示当前时刻系统中存在的线程的数量。
具体地,服务器定时(如每隔十二小时)获取对作业的调度请求,响应于调度请求,确定处理作业所需的线程数。服务器获取当前线程数,将当前线程数与最大线程数进行比较,当当前线程数小于最大线程数时,服务器根据处理作业所需的线程数启动相应数量的线程对作业进行处理。服务器根据处理作业所需的线程数对当前线程数以及最大线程数进行更新。其中,对作业的调度请求可以是用户按需手动触发的,例如用户在应用界面上手动点击触发调度请求;也可以是服务器自动触发的,例如服务器定时获取多个作业,自动触发对作业的调度请求。
步骤S104,通过线程对作业进行处理,在对作业进行处理的过程中,获取作业的作业状态。
其中,作业状态可以根据处理作业的线程的状态生成,线程的状态可以包括但不仅限于为新建、待处理、处理中、结束、超时、未超时中至少一项。例如,当处理作业的线程状态为新建、处理中、超时时,生成作业的作业状态为超时状态;当处理作业的线程状态为新建、处理中、未超时时,生成作业的作业状态为未超时状态。
具体地,服务器通过线程对待处理作业进行调度处理,在对作业进行调度处理的过程中,服务器实时获取作业的作业状态。
步骤S106,当作业中存在作业状态为超时状态的超时作业时,根据超时作业从线程中释放与超时作业相匹配的线程,将超时作业重新添加至作业队列中。
其中,作业队列可以用于对多个待处理作业进行排序并存储,服务器可以按照作业队列中作业的顺序对作业进行调度处理。
具体地,当服务器检测到存在作业状态为超时状态的超时作业时,从线程中释放处理该超时作业的线程,将该超时作业重新添加至作业队列中。服务器根据处理该超时作业的线程数量对当前线程数以及最大线程数进行更新。
步骤S108,在超时作业的处理时间到达时,重复上述步骤对超时作业进行处理,直至作业处理完毕。
具体地,服务器在超时作业的处理时间到达时(例如,从作业队列中获取到该超时作业),按照步骤S102~S106所述的内容对超时作业进行处理,直至作业处理完毕。
上述作业调度方法中,通过获取对作业的调度请求,根据作业对应的线程数确定启动处理作业的线程的数量,通过线程对作业进行处理,获取作业的作业状态,当作业状态为超时状态时,释放与超时作业相匹配的线程,将超时作业重新添加至作业队列中,在超时作业的处理时间到达时,重复上述步骤对超时作业进行处理,直至作业处理完毕,能够在对作业进行处理的过程中,根据作业所需的线程数动态调整线程,释放超时作业的线程,提高线程执行效率,从而提高企业系统处理作业的效率。
在一个实施例中,如图2所示,步骤S104,通过线程对作业进行处理,在对作业进行处理的过程中,获取作业的作业状态,包括:
步骤S202,在对作业进行处理的过程中,根据当前时刻以及对作业进行处理的处理开始时刻,生成作业的当前作业状态。
步骤S204,调用超时扫描线程,通过超时扫描线程扫描得到作业的当前作业状态。
其中,当前作业状态可以但不仅限于包括超时状态、未超时状态其中的一项。
具体地,服务器在对作业进行处理的过程中,获取当前时刻以及服务器对作业进行处理的处理开始时刻,确定当前时刻与处理开始时刻之间的时间差,将时间差与预设的超时阈值进行比较,当时间差大于或等于超时阈值时,生成作业的当前作业状态为超时状态;当时间差小于超时阈值时,生成作业的当前作业状态为未超时状态。服务器定时调用超时扫描线程,通过超时扫描线程对作业进行扫描,获取作业的当前作业状态。
本实施例中,通过调用超时扫描线程对作业进行扫描获取作业的当前状态,能够实现对处理中的作业的当前作业状态的定时监控,及时地发现已超时的作业,进而及时地释放被已超时的作业占用的线程,从而释放出系统资源。
在一个实施例中,如图3所示,步骤S104,通过线程对作业进行处理,在对作业进行处理的过程中,获取作业的作业状态,还包括:
步骤S302,通过线程将作业从作业调度平台调度至作业系统,在调度的过程中,确定线程对作业进行调度的调度开始时间,以及作业系统接收到作业的调度完成时间。
步骤S304,根据调度开始时间以及调度完成时间,确定作业的作业状态。
其中,作业调度平台可以用于对作业进行调度处理。作业系统可以用于对作业进行执行处理。
具体地,服务器通过线程将作业从作业调度平台调度至作业系统,在调度的过程中,确定线程对作业进行调度的调度开始时间,以及作业系统接收到作业的调度完成时间。服务器根据调度开始时间以及调度完成时间确定调度时间差,将调度时间差与超时阈值进行比较,当调度时间差小于超时阈值时,确定作业的作业状态为未超时状态;当调度时间差大于或等于超时阈值时,确定作业的作业状态为超时状态。
本实施例中,通过获取调度开始时间以及调度完成时间,确定作业的当前状态,能够实现对调度中的作业的作业状态的监控;通过将作业调度至作业系统,实现对作业的异步处理,还可以加快作业的处理效率。
在一个实施例中,获取对作业的调度请求,可以通过以下方式中的任一种实现:
(1)获取作业调度平台定时触发的对作业的调度请求。
具体地,服务器获取的对作业的调度请求可以是作业调度平台定时主动触发的。即,当作业调度平台检测到当前时间到达预先配置的定时时间时,自动生成调度请求。
(2)响应于用户通过业务平台触发的对作业的调度操作,获取对作业的调度请求。
其中,业务平台可以是与各个业务场景相对应的平台,例如,综合业务平台。具体地,当业务平台检测到用户触发的对作业的调度操作,例如,检测到用户从业务平台上点击作业处理按键,响应于该调度操作,向服务器发送针对该作业的地调度请求。
本实施例中,通过作业调度平台定时主动触发和用户通过业务平台触发两种触发途径触发对作业的调度请求,能够提高调度系统的可用性,以及提高相应业务系统处理业务灵活性。
在一个实施例中,在步骤S106,当作业中存在作业状态为超时状态的超时作业时,根据超时作业从线程中释放与超时作业相匹配的线程,将超时作业重新添加至作业队列中,之后,还包括:生成作业的作业记录状态,作业记录状态为超时。
其中,作业记录状态可以包括但不仅限于超时、成功中任一项。
具体地,服务器在根据超时作业从线程中释放与超时作业相匹配的线程之后,生成作业的作业记录状态,该作业记录状态为超时。其中,作业记录状态存储在作业记录表中。
在一个实施例中,在步骤S108,在超时作业的处理时间到达时,重复上述步骤对超时作业进行处理,直至作业处理完毕之后,还包括:获取作业的当前作业状态,当作业的当前作业状态为未超时状态时,从线程中释放与作业相匹配的线程,并将作业的作业记录状态从超时更新为成功。
具体地,服务器在作业处理完毕之后,获取作业系统异步回调返回的数据。服务器根据作业对应的作业标识在作业记录表中查询作业的作业记录状态。服务器获取作业的当前作业状态,当作业的当前作业状态为未超时状态时,服务器从线程中释放与处理该作业的线程,并将该作业的作业记录状态从超时更新为成功,服务器根据释放的线程数量对当前线程数以及最大线程数进行更新;当作业的当前作业状态为超时状态时,服务器更新作业的作业记录状态为超时,将超时作业添加至作业队列中等待下一次处理。
本实施例中,通过获取作业处理完毕之后的作业的当前作业状态,根据当前作业状态对作业的作业记录状态进行更新,能够提高线程的执行效率。
在一个实施例中,如图4所示,所述方法还包括:
步骤S402,获取作业的作业配置信息。
其中,作业配置信息包括作业标识(包括但不仅限于作业序号标识、机构编号标识、处理时间标识、是否处理标识),以及初始线程数。初始线程数可以但不仅限于包括初始最大线程数以及初始当前线程数。下表示例性地示出了作业标识的配置信息:
XH | NUMBER(2) | 作业序号标识 |
BRAND | VARchar2(3) | 机构编号标识 |
DATATIME | VARchar2(8) | 处理时间标识 |
ISPROC | VARchar2(1) | 是否处理标识 |
具体地,服务器获取多个待处理作业,获取业务人员为每个作业配置的作业标识、初始最大线程数以及初始当前线程数等作业配置信息,对多个待处理作业进行分组。
一个示例中,服务器可以根据作业的作业标识确定需要调度的作业,获取该作业对应的文件路径、调度文件日期、增量标识单位、分区标识等信息,服务器根据上述信息对作业的下一次处理时间进行更新。
步骤S404,当根据线程数启动处理作业所需的线程,在初始线程数上增加线程数的数量。
具体地,当服务器根据处理作业所需的线程数启动线程时,服务器对最大线程数以及当前线程数进行更新,在初始最大线程数上增加与处理作业所需的线程数相等的数量,得到最大线程数,在初始当前线程数上增加与处理作业所需的线程数相等的数量,得到当前线程数。
步骤S406,当从线程中释放与超时作业相匹配的线程时,在当前的线程数上减少与超时作业相匹配的线程的数量。
具体地,当服务器从线程中释放与超时作业相匹配的线程时,服务器对最大线程数以及当前线程数进行更新,在当前的最大线程数上减少与处理超时作业相匹配的线程的数量,得到最大线程数,在当前的当前线程数上减少与处理超时作业相匹配的线程的数量,得到当前线程数。
本实施例,通过配置初始线程数,根据处理作业所需的线程对线程数进行实时更新,能够提高线程的执行效率。
在一个实施例中,如图5a所示,提供了一种作业调度方法,包括:
步骤S502,获取作业的作业配置信息。
具体地,服务器获取多个待处理作业,获取业务人员为每个作业配置的作业标识、初始最大线程数以及初始当前线程数等作业配置信息,对多个待处理作业进行分组。
步骤S504,获取对作业的调度请求,响应于调度请求,确定作业对应的线程数,根据线程数启动处理作业所需的线程,对线程数进行更新。
具体地,服务器获取对作业的调度请求,响应于调度请求,确定处理作业所需的线程数。服务器获取当前线程数,将当前线程数与初始最大线程数进行比较,当当前线程数小于初始最大线程数时,服务器根据处理作业所需的线程数启动处理作业所需的相应数量的线程对作业进行处理。服务器根据处理作业所需的线程数对当前线程数以及最大线程数进行更新。其中,对作业的调度请求可以是作业调度平台定时主动触发的;也可以是,用户发现存在需要补做的作业,从业务平台上点击相应的作业处理按键触发的。具体的对线程数更新的操作可以参考上述实施例中提供的方法实现,在此不做具体阐述。
步骤S506,通过线程对作业进行处理,在对作业进行处理的过程中,获取作业的作业状态。
具体地,服务器通过线程将作业调度至作业系统进行处理,在对作业进行处理的过程中,获取作业的作业状态。其中,作业状态可以通过调用超时扫描线程进行获取,也可以通过根据调度开始时间与调度完成时间来确定。具体的作业状态获取操作可以参考上述实施例中的方法实现,在此不做具体阐述。
步骤S508,当作业中存在超时作业时,根据超时作业从线程中释放线程,将超时作业重新添加至作业队列中,对线程数进行更新,生成作业的作业记录状态。
步骤S510,在超时作业的处理时间到达时,重复上述步骤对超时作业进行处理,直至作业处理完毕。
具体地,当服务器确定存在作业状态为超时状态的作业时,根据超时作业从线程中释放线程,将超时作业重新添加至作业队列中,对线程数进行更新,生成作业的作业记录状态为超时。服务器在超时作业的处理时间到达时,按照步骤S502~S508所述的内容对超时作业进行处理,直至所有作业处理完毕。具体的线程释放操作以及线程数更新操作可以参考上述实施例中提供的方法实现,在此不做具体阐述。
步骤S512,获取作业的当前作业状态,对作业的作业记录状态进行更新。
具体地,当作业处理完毕后,作业系统异步回调向作业调度系统返回数据。服务器根据作业对应的序号在作业记录表中查询作业的作业记录状态。服务器获取作业的当前作业状态,根据当前作业状态对作业的作业记录状态进行更新。具体的作业记录状态更新操作可以参考上述实施例中提供的方法实现,在此不做具体阐述。
一个示例中,采用批处理调度框架(Spring-batch)结合java(计算机编程语言)技术生成作业调度平台,采用开源统一调度框架(quartz)进行定时作业调度。
一个示例中,如图5b所示,提供了一种作业调度平台、作业系统以及业务平台的交互方式。
本实施例中,通过获取作业的作业配置信息,获取对作业的调度请求,根据作业对应的线程数确定启动处理作业的线程的数量,通过线程对作业进行处理,获取作业的作业状态,当作业状态为超时状态时,释放与超时作业相匹配的线程,将超时作业重新添加至作业队列中,在超时作业的处理时间到达时,重复上述步骤对超时作业进行处理,直至作业处理完毕,能够通过参数化的作业配置信息进行作业统一调度管理,大大提高作业可执行性和处理效率;在对作业进行处理的过程中,通过获取作业的作业状态,根据作业所需的线程数动态调整线程数,释放超时作业的线程,提高线程执行效率;通过提供用户可触发的作业补做操作,可提高相应业务系统处理业务灵活性;通过采用调度框架quartz实现定时调度,可提高调度系统的可用性;从而提高企业系统处理作业的效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的作业调度方法的作业调度装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个作业调度装置实施例中的具体限定可以参见上文中对于作业调度方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种作业调度装置600,包括:调度请求响应模块602、作业状态获取模块604和超时作业处理模块606,其中:
调度请求响应模块602,用于获取对作业的调度请求,响应于调度请求,确定作业对应的线程数,根据线程数启动处理作业所需的线程。
作业状态获取模块604,用于通过线程对作业进行处理,在对作业进行处理的过程中,获取作业的作业状态。
超时作业处理模块606,用于当作业中存在作业状态为超时状态的超时作业时,根据超时作业从线程中释放与超时作业相匹配的线程,将超时作业重新添加至作业队列中;在超时作业的处理时间到达时,重复上述步骤对超时作业进行处理,直至作业处理完毕。
在一个实施例中,作业状态获取模块604包括:作业状态生成单元,用于在对作业进行处理的过程中,根据当前时刻以及对作业进行处理的处理开始时刻,生成作业的当前作业状态,当前作业状态包括超时状态、未超时状态;超时线程扫描单元,用于调用超时扫描线程,通过超时扫描线程扫描得到作业的当前状态。
在一个实施例中,作业状态获取模块604还包括:调度时间确定单元,用于通过线程将作业从作业调度平台调度至作业系统,在调度的过程中,确定线程对作业进行调度的调度开始时间,以及作业系统接收到作业的调度完成时间;作业状态确定单元,用于根据调度开始时间以及调度完成时间,确定作业的作业状态,作业状态包括超时状态、未超时状态。
在一个实施例中,调度请求响应模块602包括:平台触发单元,用于获取作业调度平台定时触发的对作业的调度请求;用户触发单元,用于响应于用户通过业务平台触发的对作业的调度操作,获取对作业的调度请求。
在一个实施例中,超时作业处理模块606包括:作业记录状态生成单元,用于在根据超时作业从线程中释放与超时作业相匹配的线程之后,生成作业的作业记录状态,作业记录状态为超时。
在一个实施例中,作业调度装置600还包括:作业记录状态更新模块,用于在直至作业处理完毕之后,获取作业的当前作业状态,当作业的当前作业状态为成功状态时,从线程中释放与作业相匹配的线程,并将作业的作业记录状态从超时更新为成功。
在一个实施例中,作业调度装置600还包括:作业配置信息获取模块,用于获取作业的作业配置信息,作业配置信息包括初始线程数;初始线程数更改模块,用于当根据线程数启动处理作业所需的线程时,在初始线程数上增加线程数的数量;当从线程中释放与超时作业相匹配的线程时,在当前的线程数上减少与超时作业相匹配的线程的数量。
上述作业调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种作业调度方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (17)
1.一种作业调度方法,其特征在于,所述方法包括:
获取对作业的调度请求,响应于所述调度请求,确定所述作业对应的线程数,根据所述线程数启动处理所述作业所需的线程;
通过所述线程对所述作业进行处理,在对所述作业进行处理的过程中,获取所述作业的作业状态;
当所述作业中存在所述作业状态为超时状态的超时作业时,根据所述超时作业从所述线程中释放与所述超时作业相匹配的线程,将所述超时作业重新添加至作业队列中;
在所述超时作业的处理时间到达时,重复上述步骤对所述超时作业进行处理,直至所述作业处理完毕。
2.根据权利要求1所述的方法,其特征在于,所述获取所述作业的作业状态,包括:
在对所述作业进行处理的过程中,根据当前时刻以及对所述作业进行处理的处理开始时刻,生成所述作业的当前作业状态,所述当前作业状态包括超时状态、未超时状态;
调用超时扫描线程,通过所述超时扫描线程扫描得到所述作业的所述当前作业状态。
3.根据权利要求1所述的方法,其特征在于,所述通过所述线程对所述作业进行处理,在对所述作业进行处理的过程中,获取所述作业的作业状态,包括:
通过所述线程将所述作业从作业调度平台调度至作业系统,在调度的过程中,确定所述线程对所述作业进行调度的调度开始时间,以及所述作业系统接收到所述作业的调度完成时间;
根据所述调度开始时间以及所述调度完成时间,确定所述作业的作业状态,所述作业状态包括超时状态、未超时状态。
4.根据权利要求3所述的方法,其特征在于,所述获取对作业的调度请求,包括:
获取所述作业调度平台定时触发的对所述作业的调度请求;
或者,
响应于用户通过业务平台触发的对所述作业的调度操作,获取对所述作业的调度请求。
5.根据权利要求1所述的方法,其特征在于,在所述根据所述超时作业从所述线程中释放与所述超时作业相匹配的线程之后,还包括:
生成所述作业的作业记录状态,所述作业记录状态为超时。
6.根据权利要求5所述的方法,其特征在于,在所述直至所述作业处理完毕之后,还包括:
获取所述作业的当前作业状态,当所述作业的当前作业状态为未超时状态时,从所述线程中释放与所述作业相匹配的线程,并将所述作业的作业记录状态从超时更新为成功。
7.根据权利要求1~6任一项所述的方法,其特征在于,所述方法还包括:
获取所述作业的作业配置信息,所述作业配置信息包括初始线程数;
当根据所述线程数启动处理所述作业所需的线程时,在所述初始线程数上增加所述线程数的数量;
当从所述线程中释放与所述超时作业相匹配的线程时,在当前的所述线程数上减少与所述超时作业相匹配的线程的数量。
8.一种作业调度装置,其特征在于,所述装置包括:
调度请求响应模块,用于获取对作业的调度请求,响应于所述调度请求,确定所述作业对应的线程数,根据所述线程数启动处理所述作业所需的线程;
作业状态获取模块,用于通过所述线程对所述作业进行处理,在对所述作业进行处理的过程中,获取所述作业的作业状态;
超时作业处理模块,用于当所述作业中存在所述作业状态为超时状态的超时作业时,根据所述超时作业从所述线程中释放与所述超时作业相匹配的线程,将所述超时作业重新添加至作业队列中;在所述超时作业的处理时间到达时,重复上述步骤对所述超时作业进行处理,直至所述作业处理完毕。
9.根据权利要求8所述的装置,其特征在于,所述作业状态获取模块包括:
作业状态生成单元,用于在对所述作业进行处理的过程中,根据当前时刻以及对所述作业进行处理的处理开始时刻,生成所述作业的当前作业状态,所述当前作业状态包括超时状态、未超时状态;
超时线程扫描单元,用于调用超时扫描线程,通过所述超时扫描线程扫描得到所述作业的所述当前状态。
10.根据权利要求8所述的装置,其特征在于,所述作业状态获取模块包括:
调度时间确定单元,用于通过所述线程将所述作业从作业调度平台调度至作业系统,在调度的过程中,确定所述线程对所述作业进行调度的调度开始时间,以及所述作业系统接收到所述作业的调度完成时间;
作业状态确定单元,用于根据所述调度开始时间以及所述调度完成时间,确定所述作业的作业状态,所述作业状态包括超时状态、未超时状态。
11.根据权利要求10所述的装置,其特征在于,所述调度请求响应模块包括:
平台触发单元,用于获取所述作业调度平台定时触发的对所述作业的调度请求;
用户触发单元,用于响应于用户通过业务平台触发的对所述作业的调度操作,获取对所述作业的调度请求。
12.根据权利要求8所述的装置,其特征在于,所述超时作业处理模块还包括:
作业记录状态生成单元,用于在所述根据所述超时作业从所述线程中释放与所述超时作业相匹配的线程之后,生成所述作业的作业记录状态,所述作业记录状态为超时。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
作业记录状态更新模块,用于在所述直至所述作业处理完毕之后,获取所述作业的当前作业状态,当所述作业的当前作业状态为成功状态时,从所述线程中释放与所述作业相匹配的线程,并将所述作业的作业记录状态从超时更新为成功。
14.根据权利要求8~13任一项所述的装置,其特征在于,所述装置还包括:
作业配置信息获取模块,用于获取所述作业的作业配置信息,所述作业配置信息包括初始线程数;
初始线程数更改模块,用于当根据所述线程数启动处理所述作业所需的线程时,在所述初始线程数上增加所述线程数的数量;
当从所述线程中释放与所述超时作业相匹配的线程时,在当前的所述线程数上减少与所述超时作业相匹配的线程的数量。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
17.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111375315.0A CN114217954A (zh) | 2021-11-19 | 2021-11-19 | 作业调度方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111375315.0A CN114217954A (zh) | 2021-11-19 | 2021-11-19 | 作业调度方法、装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114217954A true CN114217954A (zh) | 2022-03-22 |
Family
ID=80697641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111375315.0A Pending CN114217954A (zh) | 2021-11-19 | 2021-11-19 | 作业调度方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114217954A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168059A (zh) * | 2022-09-07 | 2022-10-11 | 平安银行股份有限公司 | 系统内核监测方法、装置、终端设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832126A (zh) * | 2017-10-20 | 2018-03-23 | 平安科技(深圳)有限公司 | 一种线程的调整方法及其终端 |
US20180349178A1 (en) * | 2014-08-14 | 2018-12-06 | Import.Io Limited | A method and system for scalable job processing |
CN110377402A (zh) * | 2018-04-12 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 业务数据处理方法、装置、存储介质及计算机设备 |
-
2021
- 2021-11-19 CN CN202111375315.0A patent/CN114217954A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180349178A1 (en) * | 2014-08-14 | 2018-12-06 | Import.Io Limited | A method and system for scalable job processing |
CN107832126A (zh) * | 2017-10-20 | 2018-03-23 | 平安科技(深圳)有限公司 | 一种线程的调整方法及其终端 |
CN110377402A (zh) * | 2018-04-12 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 业务数据处理方法、装置、存储介质及计算机设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168059A (zh) * | 2022-09-07 | 2022-10-11 | 平安银行股份有限公司 | 系统内核监测方法、装置、终端设备及存储介质 |
CN115168059B (zh) * | 2022-09-07 | 2022-12-16 | 平安银行股份有限公司 | 系统内核监测方法、装置、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060206894A1 (en) | Method of scheduling jobs using database management system for real-time processing | |
CN111338791A (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN114416308A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN112035235A (zh) | 任务调度方法、系统、设备及存储介质 | |
CN113032125A (zh) | 作业调度方法、装置、计算机系统和计算机可读存储介质 | |
CN111258741B (zh) | 仓库任务执行的方法、分布式服务器集群及计算机设备 | |
CN112631751A (zh) | 任务调度方法、装置、计算机设备及存储介质 | |
CN111831424A (zh) | 一种任务处理方法、系统及装置 | |
CN114217954A (zh) | 作业调度方法、装置、计算机设备、存储介质 | |
CN108521524B (zh) | 坐席协办任务管理方法、装置、计算机设备及存储介质 | |
CN113570220B (zh) | 任务管理方法、装置、计算机设备和存储介质 | |
CN113590289B (zh) | 作业调度方法、系统、装置、计算机设备和存储介质 | |
CN112269473B (zh) | 一种基于场景灵活定义的人机交互方法及系统 | |
CN115357352A (zh) | 分布式异步任务调度方法、装置、计算机设备、存储介质 | |
CN115062086A (zh) | 应用程序功能推送方法、装置、计算机设备和存储介质 | |
CN115016915A (zh) | 任务调度方法、装置、计算机设备、存储介质和程序产品 | |
CN114819490A (zh) | 任务发布方法、装置、设备及存储介质 | |
CN111190725B (zh) | 任务处理方法、装置、存储介质及服务器 | |
CN113742059A (zh) | 任务分配方法、装置、计算机设备和存储介质 | |
CN113434276A (zh) | 任务分配处理方法、装置、计算机设备和存储介质 | |
CN109725994B (zh) | 数据抽取任务执行方法、装置、终端及可读存储介质 | |
CN116032928B (zh) | 数据协同计算方法、装置、系统、电子装置和存储介质 | |
US20190172018A1 (en) | Standby system and process | |
CN109726983B (zh) | 审批任务分配方法、装置、计算机设备和存储介质 | |
JP7275726B2 (ja) | ソフトウェアロボット制御方法、ソフトウェアロボット制御装置、プログラム |
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 |