CN110990132B - 异步任务处理方法、装置、计算机设备和存储介质 - Google Patents
异步任务处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110990132B CN110990132B CN201911058346.6A CN201911058346A CN110990132B CN 110990132 B CN110990132 B CN 110990132B CN 201911058346 A CN201911058346 A CN 201911058346A CN 110990132 B CN110990132 B CN 110990132B
- Authority
- CN
- China
- Prior art keywords
- task
- queue
- asynchronous
- asynchronous task
- unexecuted
- 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
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/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/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/5055—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 software capabilities, i.e. software resources associated or available to the machine
-
- 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
- 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
本申请涉及一种异步任务处理方法、装置、计算机设备和存储介质。涉及计算机技术领域。所述方法包括:通过首先检测任务数据库中是否存在未执行的异步任务;然后当检测到该任务数据库中存在该未执行的异步任务时,根据该未执行的异步任务的类型将该未执行的异步任务添加至对应的任务队列中;最后当存在空闲线程时,利用该空闲线程执行该任务队列中的异步任务。采用本方法能够简化处理异步任务时的操作。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种异步任务处理方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,软件开发变得常见起来,在软件开发过程中,异步任务是一种十分常见的需求,一些耗时的操作需要放到异步队列中去执行,延时任务也是异步任务的一种,例如交易场景下的定时关单需求。目前可以通过消息队列中间件的方法实现异步任务的处理。
相关的通过消息队列中间件实现异步任务处理的方法中,需要事先申请主题模式(英文:Topic)、生产者编号(英文:CID)和消费者编号(英文:PID)。然后生产者(也即是异步任务的生产方)将异步任务以消息的形放入消息队列中间件,消费者(也即是异步任务的处理方)异步地从消费队列里获取消息进行任务处理。
然而,目前的利用消息队列中间件的方法实现异步任务的处理的方法存在操作较为复杂的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够简便操作的异步任务处理方法、装置、计算机设备和存储介质。
第一方面,提供一种异步任务处理方法,该方法包括:
检测任务数据库中是否存在未执行的异步任务;
当检测到该任务数据库中存在该未执行的异步任务时,根据该未执行的异步任务的类型将该未执行的异步任务添加至对应的任务队列中;
当存在空闲线程时,利用该空闲线程执行该任务队列中的异步任务。
在其中一个实施例中,该检测任务数据库中是否存在未执行的异步任务,包括:
根据预设的间隔时长以及该任务数据库对应的系统中客户端的数量,获取轮询间隔时长;
根据该轮询间隔时长,对该任务数据库中是否存在该未执行的异步任务进行轮询检测。
在其中一个实施例中,该根据该异步任务的类型将该异步任务添加至对应的任务队列中,包括:
当该未执行的异步任务的类型为依赖类型或者延时类型时,将该未执行的异步任务添加至等待队列,该依赖类型用于表征异步任务的执行条件为必须在前置任务完成之后才能被执行,该延时类型用于表征异步任务的执行条件为需要等待一定时长之后才能被执行;
当该未执行的异步任务的类型不是依赖类型和延时类型时,将该未执行的异步任务添加至就绪队列中;
当该等待队列中的异步任务满足执行条件时,将满足执行条件的异步任务添加至该就绪队列中。
在其中一个实施例中,该当存在空闲线程时,利用该空闲线程执行该任务队列中的异步任务,包括:
当存在该空闲线程时,按照添加至该就绪队列中的顺序,从该就绪队列中获取异步任务;
将获取到的异步任务添加至执行队列中;
按照添加至该执行队列中的顺序,利用该空闲线程执行该执行队列中的异步任务。
在其中一个实施例中,该利用该空闲线程执行该执行队列中的异步任务之后,该方法还包括:
当异步任务被执行成功时,将执行成功的异步任务添加至成功队列;
当异步任务被执行失败时,将执行失败的异步任务添加至重试队列,该重试队列中的异步任务会进入该就绪队列中,等待重新被执行;
当异步任务重新被执行的次数超过第一预设阈值时,将重新被执行的次数超过第一预设阈值的异步任务添加至死亡队列。
在其中一个实施例中,该方法还包括:
将该等待队列、该就绪队列、该执行队列、该成功队列、该重试队列和该死亡队列中异步任务的数量发送至异步任务管理终端中,以供该异步任务管理终端对该异步任务的数量进行展示;
当该等待队列、该就绪队列、该执行队列、该成功队列、该重试队列和该死亡队列中任一队列的异步任务的数量超过第二预设阈值时,向该异步任务管理终端发送告警信息,以供该异步任务管理终端对该告警信息进行展示。
在其中一个实施例中,该检测任务数据库中是否存在未执行的异步任务之前,该方法还包括:
获取该未执行的异步任务的类型;
将该未执行的异步任务和该未执行的异步任务的类型的对应关系存入该任务数据库。
第二方面,提供一种异步任务处理装置,该装置包括:
检测模块,用于检测任务数据库中是否存在未执行的异步任务;
第一添加模块,用于当检测到该任务数据库中存在该未执行的异步任务时,根据该未执行的异步任务的类型将该未执行的异步任务添加至对应的任务队列中;
执行模块,用于当存在空闲线程时,利用该空闲线程执行该任务队列中的异步任务。
在其中一个实施例中,该检测模块具体用于,根据预设的间隔时长以及该任务数据库对应的系统中客户端的数量,获取轮询间隔时长;
根据该轮询间隔时长,对该任务数据库中是否存在该未执行的异步任务进行轮询检测。
在其中一个实施例中,该第一添加模块具体用于,当该未执行的异步任务的类型为依赖类型或者延时类型时,将该未执行的异步任务添加至等待队列,该依赖类型用于表征异步任务的执行条件为必须在前置任务完成之后才能被执行,该延时类型用于表征异步任务的执行条件为需要等待一定时长之后才能被执行;
当该未执行的异步任务的类型不是依赖类型和延时类型时,将该未执行的异步任务添加至就绪队列中;
当该等待队列中的异步任务满足执行条件时,将满足执行条件的异步任务添加至该就绪队列中。
在其中一个实施例中,该执行模块具体用于,当存在该空闲线程时,按照添加至该就绪队列中的顺序,从该就绪队列中获取异步任务;
将获取到的异步任务添加至执行队列中;
按照添加至该执行队列中的顺序,利用该空闲线程执行该执行队列中的异步任务。
在其中一个实施例中,该装置还包括第二添加模块,该第二添加模块用于,当异步任务被执行成功时,将执行成功的异步任务添加至成功队列;
当异步任务被执行失败时,将执行失败的异步任务添加至重试队列,该重试队列中的异步任务会进入该就绪队列中,等待重新被执行;
当异步任务重新被执行的次数超过第一预设阈值时,将重新被执行的次数超过第一预设阈值的异步任务添加至死亡队列。
在其中一个实施例中,该装置还包括发送模块,该发送模块用于,将该等待队列、该就绪队列、该执行队列、该成功队列、该重试队列和该死亡队列中异步任务的数量发送至异步任务管理终端中,以供该异步任务管理终端对该异步任务的数量进行展示;
当该等待队列、该就绪队列、该执行队列、该成功队列、该重试队列和该死亡队列中任一队列的异步任务的数量超过第二预设阈值时,向该异步任务管理终端发送告警信息,以供该异步任务管理终端对该告警信息进行展示。
在其中一个实施例中,该装置还包括获取模块,该获取模块用于,获取该未执行的异步任务的类型;
将该未执行的异步任务和该未执行的异步任务的类型的对应关系存入该任务数据库。
第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该计算机程序时实现上述第一方面任一所述的方法。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面任一所述的方法。
上述异步任务处理方法、装置、计算机设备和存储介质,通过首先检测任务数据库中是否存在未执行的异步任务;然后当检测到该任务数据库中存在该未执行的异步任务时,根据该未执行的异步任务的类型将该未执行的异步任务添加至对应的任务队列中;最后当存在空闲线程时,利用该空闲线程执行该任务队列中的异步任务。本申请提供的异步任务处理方法,当存在可以被执行的异步任务时,可以直接利用空闲线程对异步任务处理,不需要事先申请Topic、CID和PID,一定程度上简化了处理异步任务时的操作,所以本申请提供的异步任务处理方法相对于相关的消息队列中间件方法来说,具有操作简便的优点。
附图说明
图1为一个实施例中异步任务处理方法的应用场景图;
图2为一个实施例中异步任务处理方法的流程示意图;
图3为一个实施例中检测任务数据库中是否存在未执行的异步任务的方法的流程示意图;
图4为一个实施例中各个任务队列之间的关系图;
图5为一个实施例中执行异步任务的方法的流程示意图;
图6为一个实施例中处理执行后异步任务的方法的流程示意图;
图7为一个实施例中异步任务管理终端的界面图;
图8为一个实施例中获取未执行的异步任务的方法的流程示意图;
图9为一个实施例中异步任务处理装置的结构框图;
图10为一个实施例中另一种异步任务处理装置的框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
随着计算机技术的发展,软件开发变的常见起来,在软件开发过程中,有同步任务和异步任务两种任务。同步任务表示位于一个主线程中的任务会按顺序从上到下被执行,也就是说,每个任务都需要等待前面的任务执行完成,自己才可以被执行。如果此时主线程中出现了执行耗时很长的任务,那就意味着在执行这个耗时很长的任务时,主线程中的其他任务不能被执行,并且需要等待很长时间。这无疑是一种耗费时间的任务执行方式,因此,相对于同步任务,出现了异步任务的执行方式,在异步任务的执行方式中,主线程中的任务可以不用按顺序执行程序,例如,主线程中有一个执行耗时很长的任务,在执行到该任务时,可以将该任务挂起,或者说放到另一个线程中去执行,无需等待该任务执行完成就可以继续执行后续任务。
相比于同步任务,异步任务的执行效率更高,所以,异步任务在软件开发领域成为了一种越来越常见的需求,例如一些耗时的操作需要放到异步队列中去执行,延时任务也是异步任务的一种。随之,也出现了多种实现异步任务处理的方法,目前,可以通过消息队列中间件的方法实现异步任务的处理。
相关的消息队列中间件实现异步任务处理的方法中,生产者可以将待处理的异步任务以消息的形式发送到消息队列中间件中,所有的异步任务都可以存在消息队列中间件中,然后消费者可以从消息队列中间件中获取异步任务,然后执行获取到的异步任务。但是,在使用消息队列中间件实现异步任务的处理时,需要开发人员事先申请相应的Topic、CID和PID,这样就使得利用消息队列中间件处理异步任务的过程出现了操作繁琐的问题。
本申请提供的异步任务处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器103进行通信。服务器103可以维护任务数据库,终端102可以检测任务数据库中是否存在未执行的异步任务,当终端102检测到任务数据库中存在未执行的异步任务时,会根据未执行的异步任务的类型将该异步任务添加至对应的任务队列中,当终端102上存在空闲线程时,终端102会利用空闲线程执行任务队列中的异步任务。终端101通过网络与终端102进行通信,终端101可以作为异步任务管理终端,接收终端102发送的告警信息和处理异步任务时各任务队列包含的任务数量,并对接收到的告警信息和各任务队列包含的任务数量进行展示。
其中,终端101和终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器103可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在本申请实施例中,如图2所示,提供了一种异步任务处理方法,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
步骤201,计算机设备检测任务数据库中是否存在未执行的异步任务。
本步骤中,任务数据库中可以存储未执行的异步任务,计算机设备可以利用轮询器检测任务数据库中存储有未执行的异步任务,该轮询器包括软件工具开发包(英文:SDK)开启的多个独立的后台线程。
这些异步任务都带有相应的标识,该标识可以包括该未执行的异步任务对应的类型和任务处理类的类名。类型用于指示后续操作中将该未执行的异步任务添加到相应的任务队列中。处理类的类名用于指示后续操作中按照任务处理类的类名对异步任务做相应的处理。例如,在软件开发人员开发银行业务时,声明了异步任务处理类包括存款类和借款类,那么当异步任务的任务处理类的类名为存款类时,计算机设备会按照提前制定的存款类的逻辑方式去执行该异步任务。
步骤202,当计算机设备检测到该任务数据库中存在该未执行的异步任务时,根据该未执行的异步任务的类型将该未执行的异步任务添加至对应的任务队列中。
本步骤中,计算机设备利用上述轮询器检测到未执行的异步任务时,也会检测到该未执行的异步任务的类型和任务处理类的类名。然后可以根据未执行的异步任务的类型将该未执行的异步任务添加至对应的任务队列中,其中,类型与任务队列的对应关系可以根据需要预先设置。不同的任务队列中包含的异步任务的状态不同。
步骤203,当存在空闲线程时,计算机设备利用该空闲线程执行该任务队列中的异步任务。
线程是操作系统能够进行运算调度的最小单位,可以理解为一种能够执行任务的资源。
存在空闲线程表示存在能够执行异步任务的资源,因此,当存在空闲线程时,可以利用该空闲线程执行异步任务。并且因为任务数据库的原子性保证,使得一个异步任务只会被一台计算机设备获取到,也只会在一台计算机设备上被执行。
上述异步任务处理方法中,通过首先检测任务数据库中是否存在未执行的异步任务;然后当检测到该任务数据库中存在该未执行的异步任务时,根据该未执行的异步任务的类型将该未执行的异步任务添加至对应的任务队列中;最后当存在空闲线程时,利用该空闲线程执行该任务队列中的异步任务。本申请提供的异步任务处理方法,当存在可以被执行的异步任务时,可以直接利用空闲线程对异步任务处理,不需要事先申请Topic、CID和PID,一定程度上简化了处理异步任务时的操作,所以本申请提供的异步任务处理方法相对于相关的消息队列中间件方法来说,具有操作简便的优点。
在本申请实施例中,提供了一种检测任务数据库中是否存在未执行的异步任务的方法,请参考图3,包括以下步骤:
步骤301,计算机设备根据预设的间隔时长以及该任务数据库对应的系统中客户端的数量,获取轮询间隔时长。
本步骤中,如果发生系统中的大量客户端同时访问和检测任务数据库的情况,系统就很有可能发生故障,因此需要根据客户端的数量动态的设置轮询间隔时长,避免系统故障。
步骤302,计算机设备根据该轮询间隔时长,对该任务数据库中是否存在该未执行的异步任务进行轮询检测。
可选的,采用avgInterval*(1/2+random)*size的计算方式计算轮询间隔时长,其中,avgInterval表示预设的间隔时长,预设间隔时长的值可以根据需要调整,例如,预先设置预设间隔时长为15秒。size系统中客户端的数量。random是一个随机变量,取值范围是[0,1]。
本申请实施例中,为了避免因为客户端数量增加导致的检测任务数据库的操作过于频繁。通过设置轮询间隔时长,并且在轮询间隔时长的计算方式中加入客户端的数量和随机数,保证了轮询间隔时长可以随着客户端数量动态调整,且每次轮询间隔时长因为随机数不同而产生变化,实现了错峰检测,一定程度上保证了系统的可用性。
在本申请实施例中,请参考图4,提供了本申请中各个任务队列之间的关系图。如图4所示,当该未执行的异步任务的类型为依赖类型或者延时类型时,计算机设备将该未执行的异步任务添加至等待队列(如图4中A所指),该依赖类型用于表征异步任务的执行条件为必须在前置任务完成之后才能被执行,该延时类型用于表征异步任务的执行条件为需要等待一定时长之后才能被执行;
当该未执行的异步任务的类型不是依赖类型和延时类型时,计算机设备将该未执行的异步任务添加至就绪队列(如图4中B所指)中;
当该等待队列中的异步任务满足执行条件时,计算机设备将满足执行条件的异步任务添加至该就绪队列中。
本申请实施例中,如图4所示的各个队列,代表异步任务的不同状态,SDK可以扫描并修改异步任务的状态。图4所示的各个任务队列之间的关系可以理解为异步任务的生命周期。其中,等待队列(如图4中A所指)中的异步任务处于等待状态,需要等待满足执行条件的时候才能被执行,执行条件可以包括等待到指定时长或等待所依赖的任务完成;就绪队列(如图4中B所指)中的异步任务处于可以立即被执行的状态;执行队列(如图4中C所指)中的异步任务处于正在被执行的状态;成功队列(如图4中D所指)中的异步任务处于已经被执行成功的状态;重试队列(如图4中E所指)中的异步任务处于执行失败后等待被再次执行的状态;死亡队列(如图4中F所指)中的异步任务处于执行失败并且不会被再次执行的状态。
本申请实施例中,异步任务在任务队列之间流转时,为了保证异步任务的完整性,会将异步任务流转过程中所需要的操作写成一条脚本。例如,把异步任务从等待队列添加至就绪队列的过程,需要先进行把异步任务从等待队列中拿出的动作,再执行把异步任务放入就绪队列的动作。本申请实施例中,会将拿出和放入两个动作命令写成一条脚本。保证了异步任务在流转过程中的操作是原子性的(可以理解为,两条动作命令要么都被执行,要么都不执行),不会导致两条动作命令分别执行而造成的异步任务丢失的情况。
本申请实施例中,通过合理设置异步任务的状态和生命周期,并且异步任务的流转过程结合原子性操作,保证了异步任务被处理时的一致性和当前状态的合理性。
在本申请实施例中,提供了一种执行异步任务的方法,请参考图5,包括以下步骤:
步骤501,当存在该空闲线程时,计算机设备按照添加至该就绪队列中的顺序,从该就绪队列中获取异步任务。
可选的,按照先添加先执行的顺序来从就绪队列中获取异步任务。本申请中,当本地存在空闲线程且存在可以被执行的异步任务时,计算机设备才会获取可以被执行的异步任务。就绪队列中的任务状态为可以立即被执行,也就说,当就绪队列不为空的时候,就意味着存在可以被执行的异步任务。若此时存在空闲线程,那么计算机设备就可以从就绪队列中获取可以被执行的异步任务。
步骤502,计算机设备将获取到的异步任务添加至执行队列中。
根据上述实施例提供的异步任务在任务队列中流转的方法,本步骤可以实现将异步任务从就绪队列添加至执行队列中。异步任务从就绪队列进入等待队列,代表该异步任务从可以被执行的状态变为正在被执行的状态,基于上述实施例提供的方法,SDK会扫描异步任务的状态,并将该异步任务的状态从可以被执行修改为正在被执行。
步骤503,计算机设备按照添加至该执行队列中的顺序,利用该空闲线程执行该执行队列中的异步任务。
可选的,按照先添加先执行的顺序执行该执行队列中的任务队列。在上述实施例的基础上,异步任务会有自己任务处理类的类名,例如该异步任务的任务处理类类名为借款类,则利用空闲线程执行该任务时,会按照预先设定的借款类的逻辑方式去执行该异步任务。
本申请实施例中,通过合理设置处理异步任务的顺序,并且及时扫描更改异步任务当前的状态,合理配置线程资源,使得异步任务可以被合理分配到相应的线程。
在本申请实施例中,提供了一种处理执行后异步任务的方法,请参考图6,包括以下步骤:
步骤601,计算机设备获取异步任务被执行的结果。
本申请中,异步任务被执行后,会有不同的执行结果,例如被执行成功或被执行失败。计算机设备需要针对不同的执行结果,作出不同的处理。因此需要先获取异步任务被执行的结果。
步骤602,计算机设备判断该异步任务被执行的结果是否为成功。
步骤603,当异步任务被执行成功时,计算机设备将执行成功的异步任务添加至成功队列;当异步任务被执行失败时,计算机设备将执行失败的异步任务添加至重试队列。
该重试队列中的异步任务会进入该就绪队列中,等待重新被执行;
本步骤中,异步任务被执行成功,表示该异步任务的生命周期已经结束。异步任务被执行失败时,会再次尝试执行该异步任务。实际应用中,可能会因为网络不稳定造成异步任务执行失败,这时就需要对执行失败的异步任务进行重新执行的操作。可选的,利用SDK将异步任务的状态修改为等待再次被执行,将执行失败的异步任务添加至重试队列,重试队列中的异步任务会等待再次被执行,当重试队列中的异步任务可以被执行时,会进入就绪队列。
步骤604,计算机设备获取该异步任务被重新执行的次数。
随着时间的积累,需要重新被执行的异步任务会越来越多,若存在大量异步任务被重新执行多次但仍未执行成功的情况,会造成线程资源的浪费,也会影响其他异步任务的执行。因此需要获取异步任务被重新执行的次数,进一步判断是否需要再次执行该异步任务。
步骤605,当该异步任务重新被执行的次数超过第一预设阈值时,计算机设备将重新被执行的次数超过第一预设阈值的异步任务添加至死亡队列。
可选的,预设一阈值作为异步任务被重新执行的次数上限,假设,该阈值为5,表示在异步任务处理过程中,当某个任务被执行5次后,执行结果依然是失败的话,那么该异步任务将不会被再次执行,此时可以将该异步任务添加至死亡队列,异步任务进入死亡队列表示该异步任务的生命周期已经结束。
本申请实施例中,对不同执行结果的异步任务做相应的不同处理,并且设置了重试次数上限,一定程度上保证了系统中线程资源分配的合理性。
在本申请实施例中,请参考图7,提供了一种异步任务管理终端的界面图。计算机设备将该等待队列、该就绪队列、该执行队列、该成功队列、该重试队列和该死亡队列中异步任务的数量发送至异步任务管理终端中,以供该异步任务管理终端对该异步任务的数量进行展示;
当该等待队列、该就绪队列、该执行队列、该成功队列、该重试队列和该死亡队列中任一队列的异步任务的数量超过第二预设阈值时,计算机设备向该异步任务管理终端发送告警信息,以供该异步任务管理终端对该告警信息进行展示。
本申请实施例提供的方法,在异步任务管理终端上以可视化的方式展示当前各个任务队列,和各个任务队列包含的异步任务的数量,该异步任务管理终端可以为多个业务共用,例如银行业务、学校业务或食堂业务。可以通过触发选择应用按钮(图7中H所指),实现查看不同业务当前的异步任务处理情况。
可选的,可以预设一阈值作为任务队列容纳异步任务的数量上限。当检测到某个任务队列中的异步任务的数量超过数量上限时,可以给出相应的告警信息。例如,可以设置任务队列容纳异步任务的数量上限为4000,当某个任务队列中异步任务的数量超过4000时,如图7中G所指的成功队列,该成功队列此时的异步任务数量为4331,超过预设的数量上限4000,则异步任务管理终端会给出相应的告警信息,可选的,该告警信息可以是将该任务队列名称和包含的异步任务数量的字体以加大加粗显示(如图7中G所指)。
需要说明的是,本申请图7仅示例性地给出一种展示告警信息的方式,但本申请对展示告警信息的方式不做具体限定,例如,也可以是在当前界面弹出一个对话框,利用该对话框展示告警信息,或,其他可以将告警信息展示在异步任务管理终端界面的方式。
本申请实施例中,进一步的,还可以通过当前异步任务的状态和数量信息对异步任务的处理过程实现调整,例如,当成功队列或死亡队列中的异步任务数量积累到一定量时,可以对成功队列或死亡队列中的任务进行清空操作,防止异步任务堆积过多造成的存储资源浪费的情况。
本申请实施例中,通过异步任务管理终端实现对异步任务处理过程的监控,及时了解当前异步任务的状态和数量信息,然后基于当前异步任务的数量和状态信息可以对异步任务的处理过程实现调整,并且多个业务可以共用一个异步任务管理终端,一定程度上让异步任务的管理过程变得简便。
在本申请实施例中,提供了一种获取未执行的异步任务的方法,请参考图8,包括以下步骤:
步骤801,计算机设备获取该未执行的异步任务的类型。
计算机设备获取未执行的异步任务时,需要一并获取未执行异步任务的类型信息,还可以获取异步任务的任务处理类的类名。该异步任务的类型和异步任务处理类的类名可以是软件开发人员在开发应用时提前声明好的。
未执行异步任务的类型和任务处理类的类名已在上述实施例中做过详细说明,在此不再赘述。
步骤802,计算机设备将该未执行的异步任务和该未执行的异步任务的类型的对应关系存入该任务数据库。
在计算机设备从数据库获取未执行的异步任务之前,需要先将未执行的异步任务存入任务数据库中,在将未执行的异步任务放入数据库时,会一并将未执行的异步任务的类型一并存入任务数据库,可选的,还可以将未执行的异步任务的任务处理类的类名一并存入任务数据库。
本申请实施例中,在获取未执行的异步任务时,同时获取了该异步任务的类型,进一步的,还获取了该异步任务的任务处理类的类名,可以明确地将不同异步任务区分开,便于计算机设备在后续处理未执行的异步任务时,可以明确地根据对应的类型和对应的任务处理类类名做出相应操作。
应该理解的是,虽然图2至图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至图8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在本申请实施例中,请参考图9,提供了一种异步任务处理装置900,包括:检测模块901、第一添加模块902和执行模块903,其中:
检测模块901,用于检测任务数据库中是否存在未执行的异步任务;
第一添加模块902,用于当检测到该任务数据库中存在该未执行的异步任务时,根据该未执行的异步任务的类型将该未执行的异步任务添加至对应的任务队列中;
执行模块903,用于当存在空闲线程时,利用该空闲线程执行该任务队列中的异步任务。
在本申请实施例中,该检测模块901具体用于,根据预设的间隔时长以及该任务数据库对应的系统中客户端的数量,获取轮询间隔时长;
根据该轮询间隔时长,对该任务数据库中是否存在该未执行的异步任务进行轮询检测。
在本申请实施例中,该第一添加模块902具体用于,当该未执行的异步任务的类型为依赖类型或者延时类型时,将该未执行的异步任务添加至等待队列,该依赖类型用于表征异步任务的执行条件为必须在前置任务完成之后才能被执行,该延时类型用于表征异步任务的执行条件为需要等待一定时长之后才能被执行;
当该未执行的异步任务的类型不是依赖类型和延时类型时,将该未执行的异步任务添加至就绪队列中;
当该等待队列中的异步任务满足执行条件时,将满足执行条件的异步任务添加至该就绪队列中。
在本申请实施例中,该执行模块903具体用于,当存在该空闲线程时,按照添加至该就绪队列中的顺序,从该就绪队列中获取异步任务;
将获取到的异步任务添加至执行队列中;
按照添加至该执行队列中的顺序,利用该空闲线程执行该执行队列中的异步任务。
在本申请实施例中,请参考图10,还提供了另一种异步任务处理装置1000,该异步任务处理装置1000除了包括异步任务处理装置900包括的各模块外,可选的,该异步任务处理装置还包括第二添加模块904、发送模块905和获取模块906。
在本申请实施例中,该第二添加模块904用于,当异步任务被执行成功时,将执行成功的异步任务添加至成功队列;
当异步任务被执行失败时,将执行失败的异步任务添加至重试队列,该重试队列中的异步任务会进入该就绪队列中,等待重新被执行;
当异步任务重新被执行的次数超过第一预设阈值时,将重新被执行的次数超过第一预设阈值的异步任务添加至死亡队列。
在本申请实施例中,该发送模块905用于,将该等待队列、该就绪队列、该执行队列、该成功队列、该重试队列和该死亡队列中异步任务的数量发送至异步任务管理终端中,以供该异步任务管理终端对该异步任务的数量进行展示;
当该等待队列、该就绪队列、该执行队列、该成功队列、该重试队列和该死亡队列中任一队列的异步任务的数量超过第二预设阈值时,向该异步任务管理终端发送告警信息,以供该异步任务管理终端对该告警信息进行展示。
在本申请实施例中,该获取模块906用于,获取该未执行的异步任务的类型;
将该未执行的异步任务和该未执行的异步任务的类型的对应关系存入该任务数据库。
关于异步任务处理装置的具体限定可以参见上文中对于异步任务处理方法的限定,在此不再赘述。上述异步任务处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在本申请实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种异步任务处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在本申请实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
检测任务数据库中是否存在未执行的异步任务;
当检测到该任务数据库中存在该未执行的异步任务时,根据该未执行的异步任务的类型将该未执行的异步任务添加至对应的任务队列中;
当存在空闲线程时,利用该空闲线程执行该任务队列中的异步任务。
在本申请实施例中,处理器执行计算机程序时还实现以下步骤:
根据预设的间隔时长以及该任务数据库对应的系统中客户端的数量,获取轮询间隔时长;
根据该轮询间隔时长,对该任务数据库中是否存在该未执行的异步任务进行轮询检测。
在本申请实施例中,处理器执行计算机程序时还实现以下步骤:
当该未执行的异步任务的类型为依赖类型或者延时类型时,将该未执行的异步任务添加至等待队列,该依赖类型用于表征异步任务的执行条件为必须在前置任务完成之后才能被执行,该延时类型用于表征异步任务的执行条件为需要等待一定时长之后才能被执行;
当该未执行的异步任务的类型不是依赖类型和延时类型时,将该未执行的异步任务添加至就绪队列中;
当该等待队列中的异步任务满足执行条件时,将满足执行条件的异步任务添加至该就绪队列中。
在本申请实施例中,处理器执行计算机程序时还实现以下步骤:
当存在该空闲线程时,按照添加至该就绪队列中的顺序,从该就绪队列中获取异步任务;
将获取到的异步任务添加至执行队列中;
按照添加至该执行队列中的顺序,利用该空闲线程执行该执行队列中的异步任务。
在本申请实施例中,处理器执行计算机程序时还实现以下步骤:
当异步任务被执行成功时,将执行成功的异步任务添加至成功队列;
当异步任务被执行失败时,将执行失败的异步任务添加至重试队列,该重试队列中的异步任务会进入该就绪队列中,等待重新被执行;
当异步任务重新被执行的次数超过第一预设阈值时,将重新被执行的次数超过第一预设阈值的异步任务添加至死亡队列。
在本申请实施例中,处理器执行计算机程序时还实现以下步骤:
将该等待队列、该就绪队列、该执行队列、该成功队列、该重试队列和该死亡队列中异步任务的数量发送至异步任务管理终端中,以供该异步任务管理终端对该异步任务的数量进行展示;
当该等待队列、该就绪队列、该执行队列、该成功队列、该重试队列和该死亡队列中任一队列的异步任务的数量超过第二预设阈值时,向该异步任务管理终端发送告警信息,以供该异步任务管理终端对该告警信息进行展示。
在本申请实施例中,处理器执行计算机程序时还实现以下步骤:
获取该未执行的异步任务的类型;
将该未执行的异步任务和该未执行的异步任务的类型的对应关系存入该任务数据库。
在本申请实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
检测任务数据库中是否存在未执行的异步任务;
当检测到该任务数据库中存在该未执行的异步任务时,根据该未执行的异步任务的类型将该未执行的异步任务添加至对应的任务队列中;
当存在空闲线程时,利用该空闲线程执行该任务队列中的异步任务。
在本申请实施例中,计算机程序被处理器执行时还实现以下步骤:
根据预设的间隔时长以及该任务数据库对应的系统中客户端的数量,获取轮询间隔时长;
根据该轮询间隔时长,对该任务数据库中是否存在该未执行的异步任务进行轮询检测。
在本申请实施例中,计算机程序被处理器执行时还实现以下步骤:
当该未执行的异步任务的类型为依赖类型或者延时类型时,将该未执行的异步任务添加至等待队列,该依赖类型用于表征异步任务的执行条件为必须在前置任务完成之后才能被执行,该延时类型用于表征异步任务的执行条件为需要等待一定时长之后才能被执行;
当该未执行的异步任务的类型不是依赖类型和延时类型时,将该未执行的异步任务添加至就绪队列中;
当该等待队列中的异步任务满足执行条件时,将满足执行条件的异步任务添加至该就绪队列中。
在本申请实施例中,计算机程序被处理器执行时还实现以下步骤:
当存在该空闲线程时,按照添加至该就绪队列中的顺序,从该就绪队列中获取异步任务;
将获取到的异步任务添加至执行队列中;
按照添加至该执行队列中的顺序,利用该空闲线程执行该执行队列中的异步任务。
在本申请实施例中,计算机程序被处理器执行时还实现以下步骤:
当异步任务被执行成功时,将执行成功的异步任务添加至成功队列;
当异步任务被执行失败时,将执行失败的异步任务添加至重试队列,该重试队列中的异步任务会进入该就绪队列中,等待重新被执行;
当异步任务重新被执行的次数超过第一预设阈值时,将重新被执行的次数超过第一预设阈值的异步任务添加至死亡队列。
在本申请实施例中,计算机程序被处理器执行时还实现以下步骤:
将该等待队列、该就绪队列、该执行队列、该成功队列、该重试队列和该死亡队列中异步任务的数量发送至异步任务管理终端中,以供该异步任务管理终端对该异步任务的数量进行展示;
当该等待队列、该就绪队列、该执行队列、该成功队列、该重试队列和该死亡队列中任一队列的异步任务的数量超过第二预设阈值时,向该异步任务管理终端发送告警信息,以供该异步任务管理终端对该告警信息进行展示。
在本申请实施例中,计算机程序被处理器执行时还实现以下步骤:
获取该未执行的异步任务的类型;
将该未执行的异步任务和该未执行的异步任务的类型的对应关系存入该任务数据库。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种异步任务处理方法,其特征在于,所述方法包括:
检测任务数据库中是否存在未执行的异步任务;
当检测到所述任务数据库中存在所述未执行的异步任务时,根据所述未执行的异步任务的类型将所述未执行的异步任务添加至对应的任务队列中;
当存在空闲线程时,利用所述空闲线程执行所述任务队列中的异步任务;
其中,所述检测任务数据库中是否存在未执行的异步任务,包括:
计算预设的间隔时长与任务数据库对应的系统中客户端的数量的乘积,得到第一数值;
获取随机变量,计算随机变量与1/2的和,得到第二数据;
计算所述第一数值与所述第二数据的乘积,得到轮询间隔时长;
根据所述轮询间隔时长,对所述任务数据库中是否存在所述未执行的异步任务进行轮询检测;
其中,所述根据所述未执行的异步任务的类型将所述未执行的异步任务添加至对应的任务队列中,包括:
当所述未执行的异步任务的类型为依赖类型或者延时类型时,将所述未执行的异步任务添加至等待队列,所述依赖类型用于表征异步任务的执行条件为必须在前置任务完成之后才能被执行,所述延时类型用于表征异步任务的执行条件为需要等待一定时长之后才能被执行;
当所述未执行的异步任务的类型不是依赖类型和延时类型时,将所述未执行的异步任务添加至就绪队列中;
当所述等待队列中的异步任务满足执行条件时,将满足执行条件的异步任务添加至所述就绪队列中。
2.根据权利要求1所述的方法,其特征在于,所述任务队列包括所述等待队列、所述就绪队列、执行队列、成功队列、重试队列及死亡队列中的任一队列。
3.根据权利要求2所述的方法,其特征在于,所述当存在空闲线程时,利用所述空闲线程执行所述任务队列中的异步任务,包括:
当存在所述空闲线程时,按照添加至所述就绪队列中的顺序,从所述就绪队列中获取异步任务;
将获取到的异步任务添加至执行队列中;
按照添加至所述执行队列中的顺序,利用所述空闲线程执行所述执行队列中的异步任务。
4.根据权利要求3所述的方法,其特征在于,所述利用所述空闲线程执行所述执行队列中的异步任务之后,所述方法还包括:
当异步任务被执行成功时,将执行成功的异步任务添加至成功队列;
当异步任务被执行失败时,将执行失败的异步任务添加至重试队列,所述重试队列中的异步任务会进入所述就绪队列中,等待重新被执行;
当异步任务重新被执行的次数超过第一预设阈值时,将重新被执行的次数超过第一预设阈值的异步任务添加至死亡队列。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将所述等待队列、所述就绪队列、所述执行队列、所述成功队列、所述重试队列和所述死亡队列中异步任务的数量发送至异步任务管理终端中,以供所述异步任务管理终端对所述异步任务的数量进行展示;
当所述等待队列、所述就绪队列、所述执行队列、所述成功队列、所述重试队列和所述死亡队列中任一队列的异步任务的数量超过第二预设阈值时,向所述异步任务管理终端发送告警信息,以供所述异步任务管理终端对所述告警信息进行展示。
6.根据权利要求1所述的方法,其特征在于,所述检测任务数据库中是否存在未执行的异步任务之前,所述方法还包括:
获取所述未执行的异步任务的类型;
将所述未执行的异步任务和所述未执行的异步任务的类型的对应关系存入所述任务数据库。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
通过当前异步任务的状态和数量信息对所述异步任务进行清空操作。
8.一种异步任务处理装置,其特征在于,所述装置包括:
检测模块,用于检测任务数据库中是否存在未执行的异步任务;
第一添加模块,用于当检测到所述任务数据库中存在所述未执行的异步任务时,根据所述未执行的异步任务的类型将所述未执行的异步任务添加至对应的任务队列中;
执行模块,用于当存在空闲线程时,利用所述空闲线程执行所述任务队列中的异步任务;
其中,所述检测模块,具体用于:计算预设的间隔时长与任务数据库对应的系统中客户端的数量的乘积,得到第一数值;获取随机变量,计算随机变量与1/2的和,得到第二数据;计算所述第一数值与所述第二数据的乘积,得到轮询间隔时长;根据所述轮询间隔时长,对所述任务数据库中是否存在所述未执行的异步任务进行轮询检测;
其中,所述第一添加模块,具体用于:当所述未执行的异步任务的类型为依赖类型或者延时类型时,将所述未执行的异步任务添加至等待队列,所述依赖类型用于表征异步任务的执行条件为必须在前置任务完成之后才能被执行,所述延时类型用于表征异步任务的执行条件为需要等待一定时长之后才能被执行;当所述未执行的异步任务的类型不是依赖类型和延时类型时,将所述未执行的异步任务添加至就绪队列中;当所述等待队列中的异步任务满足执行条件时,将满足执行条件的异步任务添加至所述就绪队列中。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911058346.6A CN110990132B (zh) | 2019-11-01 | 2019-11-01 | 异步任务处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911058346.6A CN110990132B (zh) | 2019-11-01 | 2019-11-01 | 异步任务处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110990132A CN110990132A (zh) | 2020-04-10 |
CN110990132B true CN110990132B (zh) | 2023-03-10 |
Family
ID=70082951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911058346.6A Active CN110990132B (zh) | 2019-11-01 | 2019-11-01 | 异步任务处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990132B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12020516B2 (en) | 2019-12-20 | 2024-06-25 | Boe Technology Group Co., Ltd. | Method and device for processing product manufacturing messages, electronic device, and computer-readable storage medium |
CN111711598B (zh) * | 2020-04-23 | 2022-07-05 | 中国电子科技网络信息安全有限公司 | 一种面向大规模ssl/tls加密会话流的敏感数据检测系统 |
WO2022088082A1 (zh) * | 2020-10-30 | 2022-05-05 | 京东方科技集团股份有限公司 | 基于缺陷检测的任务处理方法、装置及设备及存储介质 |
JP7574672B2 (ja) * | 2021-01-29 | 2024-10-29 | ブラザー工業株式会社 | 管理システム、管理方法および管理用プログラム |
CN113434307A (zh) * | 2021-06-22 | 2021-09-24 | 北京沃东天骏信息技术有限公司 | 任务发送的处理、任务处理的方法、装置、系统及设备 |
CN115328670B (zh) * | 2022-06-27 | 2023-11-17 | 光大环境科技(中国)有限公司 | 一种异步任务处理方法、系统和服务器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473138A (zh) * | 2013-09-18 | 2013-12-25 | 柳州市博源环科科技有限公司 | 基于线程池的多任务队列调度方法 |
CN105389209A (zh) * | 2015-12-25 | 2016-03-09 | 中国建设银行股份有限公司 | 一种异步批量任务处理方法及系统 |
CN106126354A (zh) * | 2016-06-21 | 2016-11-16 | 中国建设银行股份有限公司 | 一种异步批量处理方法及系统 |
CN106506389A (zh) * | 2016-10-19 | 2017-03-15 | 广州华多网络科技有限公司 | 网络请求异步处理方法及装置 |
CN108874513A (zh) * | 2017-05-11 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 处理定时任务的方法、系统、电子设备和计算机可读介质 |
CN109558255A (zh) * | 2018-12-13 | 2019-04-02 | 广东浪潮大数据研究有限公司 | 一种任务处理的方法及任务处理装置 |
CN110119305A (zh) * | 2019-05-13 | 2019-08-13 | 北京达佳互联信息技术有限公司 | 任务执行方法、装置、计算机设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080294769A1 (en) * | 2007-05-25 | 2008-11-27 | Kenshi Doi | Efficient synchronization of agents starting a task where the agents poll a server to learn the task start time |
US9152468B2 (en) * | 2010-10-25 | 2015-10-06 | Samsung Electronics Co., Ltd. | NUMA aware system task management |
JP5716474B2 (ja) * | 2011-03-22 | 2015-05-13 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
US20120297216A1 (en) * | 2011-05-19 | 2012-11-22 | International Business Machines Corporation | Dynamically selecting active polling or timed waits |
US20160094945A1 (en) * | 2014-09-26 | 2016-03-31 | Sunil Kulkarni | Variable interval for periodic fix requests of multiple clients |
JP6904064B2 (ja) * | 2017-05-29 | 2021-07-14 | 富士通株式会社 | タスク配備プログラム、タスク配備方法、およびタスク配備装置 |
-
2019
- 2019-11-01 CN CN201911058346.6A patent/CN110990132B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473138A (zh) * | 2013-09-18 | 2013-12-25 | 柳州市博源环科科技有限公司 | 基于线程池的多任务队列调度方法 |
CN105389209A (zh) * | 2015-12-25 | 2016-03-09 | 中国建设银行股份有限公司 | 一种异步批量任务处理方法及系统 |
CN106126354A (zh) * | 2016-06-21 | 2016-11-16 | 中国建设银行股份有限公司 | 一种异步批量处理方法及系统 |
CN106506389A (zh) * | 2016-10-19 | 2017-03-15 | 广州华多网络科技有限公司 | 网络请求异步处理方法及装置 |
CN108874513A (zh) * | 2017-05-11 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 处理定时任务的方法、系统、电子设备和计算机可读介质 |
CN109558255A (zh) * | 2018-12-13 | 2019-04-02 | 广东浪潮大数据研究有限公司 | 一种任务处理的方法及任务处理装置 |
CN110119305A (zh) * | 2019-05-13 | 2019-08-13 | 北京达佳互联信息技术有限公司 | 任务执行方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110990132A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110990132B (zh) | 异步任务处理方法、装置、计算机设备和存储介质 | |
CN109960582B (zh) | 在tee侧实现多核并行的方法、装置及系统 | |
US11210109B2 (en) | Method and system for loading resources | |
CN109766253B (zh) | 一种性能数据发送方法、装置、计算机设备及存储介质 | |
CN108848142B (zh) | 消息推送方法、装置、计算机设备和存储介质 | |
CN110765288B (zh) | 一种图像信息同步方法、装置、系统及存储介质 | |
CN107045475B (zh) | 测试方法和装置 | |
CN113190427B (zh) | 卡顿监控方法、装置、电子设备及存储介质 | |
CN111831434A (zh) | 资源分配方法、装置、存储介质及电子设备 | |
CN111831414A (zh) | 线程迁移方法、装置、存储介质及电子设备 | |
CN114237852A (zh) | 一种任务调度方法、装置、服务器及存储介质 | |
US11074112B2 (en) | Maintaining the responsiveness of a user interface while performing a synchronous operation | |
CN111831436B (zh) | Io请求的调度方法、装置、存储介质及电子设备 | |
CN116662039B (zh) | 基于共享内存的工业信息并行检测方法、装置及介质 | |
CN111831432B (zh) | Io请求的调度方法、装置、存储介质及电子设备 | |
CN117573355A (zh) | 任务处理方法、装置、电子设备以及存储介质 | |
CN111831439A (zh) | Io请求的处理方法、装置、存储介质及电子设备 | |
CN114816389B (zh) | 一种基于元模型的管理系统搭建方法、装置、设备及介质 | |
CN116431731A (zh) | 数据异步导出方法、装置、设备及其存储介质 | |
CN115499493A (zh) | 异步事务处理方法、装置、存储介质及计算机设备 | |
CN111831409B (zh) | 线程调度方法、装置、存储介质及电子设备 | |
CN114647411A (zh) | 编程界面加载方法、装置、电子设备及存储介质 | |
US10936475B2 (en) | Automated scripting and testing system | |
US11036551B2 (en) | Durable program execution | |
CN111475322A (zh) | 定位stuck线程的方法、装置、计算机设备及可读存储介质 |
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 |