CN110515710A - 异步任务调度方法、装置、计算机设备和存储介质 - Google Patents

异步任务调度方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110515710A
CN110515710A CN201910720545.2A CN201910720545A CN110515710A CN 110515710 A CN110515710 A CN 110515710A CN 201910720545 A CN201910720545 A CN 201910720545A CN 110515710 A CN110515710 A CN 110515710A
Authority
CN
China
Prior art keywords
task
asynchronous
concurrent
scheduling device
sent
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
CN201910720545.2A
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.)
Shenzhen card number Technology Co.,Ltd.
Original Assignee
Shenzhen Suishou 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 Shenzhen Suishou Technology Co Ltd filed Critical Shenzhen Suishou Technology Co Ltd
Priority to CN201910720545.2A priority Critical patent/CN110515710A/zh
Publication of CN110515710A publication Critical patent/CN110515710A/zh
Pending legal-status Critical Current

Links

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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

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

异步任务调度方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种异步任务调度方法、装置、计算机设备和存储介质。
背景技术
任务调度是指通过调度任务来对相关的业务数据进行处理,是操作系统的重要组成部分。异步任务是指在主线程运行的情况下,为了避免主线程阻塞,创建额外线程来执行的任务。在传统的异步任务调度方式中,终端接收来自用户界面的任务请求,终端产生与任务请求对应的异步任务,终端将异步任务发送至线程池中,通过调用线程池来进行任务调度,线程池通过控制并发执行的线程数量来控制并发任务的数量。并发是指在同一时间段内多个任务一起运行。
然而,传统的异步任务调度方式中,同一个线程池只能针对一种任务类型进行并发处理,控制并发执行的线程数量是固定的。无法针对多种任务类型采取不同的并发控制,导致异步任务的处理效率较低。因此,如何提高异步任务的处理效率成为目前需要解决的一个技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高异步任务的处理效率的异步任务调度方法、装置、计算机设备和存储介质。
一种异步任务调度方法,所述方法包括:
获取任务请求,根据所述任务请求生成对应的异步任务;
将所述异步任务发送至对应的并发调度器,所述并发调度器中预先配置有并发数量;
判断所述并发调度器发送至线程池中的任务数量是否达到对应的并发数量;
若否,则将所述异步任务标记为待执行任务;
通过所述并发调度器将所述待执行任务发送至所述线程池,并发处理所述待执行任务。
在其中一个实施例中,所述并发调度器中预先配置有任务队列,所述任务请求携带有所述异步任务的优先级,所述方法还包括:
若是,将所述异步任务缓存至所述并发调度器的任务队列中;
在所述待执行任务执行后,判断所述并发调度器发送至线程池中的任务数量是否达到对应的并发数量;
若否,则在所述并发调度器的任务队列中提取优先级最高的目标任务发送至所述线程池;
若所述并发调度器的任务队列中存在多个优先级相同的待提取任务,则根据所述优先级相同的待提取任务之间的获取顺序在所述并发调度器的任务队列中提取目标任务发送至所述线程池。
在其中一个实施例中,所述方法还包括:
获取所述异步任务对应的任务标签;
通过分组调度器判断第一任务容器中是否存在与所述任务标签相同的任务,所述分组调度器包括所述第一任务容器以及第二任务容器,所述第一任务容器用于记录发送至每个并发层调度器中的任务,所述第二任务容器用于缓存未发送至并发调度器中的任务;
若是,则将所述异步任务缓存至第二任务容器中;
若否,则将所述异步任务发送至对应的并发调度器,将所述异步任务记录于所述第一任务容器中;
在所述待执行任务执行后,在所述第一任务容器中删除对应的记录。
在其中一个实施例中,所述方法还包括:
在所述第二任务容器中提取与所述任务标签对应的标签任务;
将所述标签任务发送至对应的并发调度器,将所述标签任务记录于第一任务容器中。
在其中一个实施例中,所述方法还包括:
调用预设接口获取所述异步任务的状态信息,将所述状态信息在对应的页面中显示;
将所述异步任务与对应的显示页面进行关联;
对所述显示页面的生命周期进行监听,当监听到所述显示页面隐藏时,降低所述异步任务的优先级;
当监听到所述显示页面显示时,提高所述异步任务的优先级;
当监听到所述显示页面销毁时,删除所述异步任务以及解除所述异步任务与对应的显示页面之间的关联。
一种异步任务调取装置,所述装置包括:
生成模块,用于获取任务请求,根据所述任务请求生成对应的异步任务;
发送模块,用于将所述异步任务发送至对应的并发调度器,所述并发调度器中预先配置有并发数量;
第一判断模块,用于判断所述并发调度器发送至线程池中的任务数量是否达到对应的并发数量;
标记模块,用于若否,则将所述异步任务标记为待执行任务;
发送模块,用于通过所述并发调度器将所述待执行任务发送至所述线程池,并发处理所述待执行任务。
在其中一个实施例中,所述装置还包括:第二判断模块,用于获取所述异步任务对应的任务标签,通过分组调度器判断第一任务容器中是否存在与所述任务标签相同的任务;所述分组调度器包括第一任务容器以及第二任务容器;所述第一任务容器用于记录发送至每个并发层调度器中的任务;所述第二任务容器用于缓存未发送至并发调度器中的任务;若是,则将所述异步任务缓存至第二任务容器中;若否,则将所述异步任务发送至对应的并发调度器,将所述异步任务记录于第一任务容器中;在所述待执行任务执行后,在所述第一任务容器中删除对应的记录。
在其中一个实施例中,调整模块,用于调用预设接口获取所述异步任务的状态信息,将所述状态信息在对应的页面中显示;将所述异步任务与对应的显示页面进行关联;对所述显示页面的生命周期进行监听,当监听到所述显示页面隐藏时,降低所述异步任务的优先级;当监听到所述显示页面显示时,提高所述异步任务的优先级;当监听到所述显示页面销毁时,删除所述异步任务以及解除所述异步任务与对应的显示页面之间的关联。
一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述各个方法实施例中的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个方法实施例中的步骤。
上述异步任务调度方法、装置、计算机设备和存储介质,通过预先设置多个并发调度器,在每个并发调度器中预先配置有并发数量,可以在面对多种类型的异步任务时,将异步任务发送至对应的并发调度器,满足多种类型的异步任务的并发需求。通过在并发调度器发送至线程池中的任务数量未达到对应的并发数量时,将异步任务发送至线程池,实现将并发调度器发送至线程池的任务在进行并发处理,进而提高了异步任务的处理效率。
附图说明
图1为一个实施例中异步任务调度方法的流程示意图;
图2为一个实施例中动态调整异步任务优先级步骤的流程示意图;
图3为另一个实施例中异步任务调度方法的流程示意图;
图4为一个实施例中异步任务调度装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的异步任务调度方法,可以应用于终端的操作系统中,操作系统可以是安卓系统,例如智能手机、平板电脑等。
在一个实施例中,如图1所示,提供了一种异步任务调度方法,以该方法应用于终端为例进行说明,包括以下步骤:
步骤102,获取任务请求,根据任务请求生成对应的异步任务。
步骤104,将异步任务发送至对应的并发调度器,并发调度器中预先配置有并发数量。
其中,异步任务是指在主线程运行的情况下,为了避免主线程阻塞,创建额外线程来执行的任务。并发调度器是指控制任务并发数量的调度器。并发调度器中预先设置的并发数量是指在并发调度器发送至线程池的任务数量。
终端获取任务请求,任务请求的获取方式可以是通过用户页面发送的。任务请求可以是数据库查询、文件夹读取等。终端对任务请求进行解析,生成对应的异步任务。终端可以预先设置多个并发调度器,多个并发调度器之间是相互独立的。每个并发调度器中预先配置有并发数量。并发数量可以是根据多种任务类型的并发需求设置的。并发调度器通过预先设置并发数量,可以限制发送至线程池的任务数量,从而实现控制线程池中任务的并发数量。
终端在根据任务请求生成对应的异步任务后,可以根据异步任务在多个并发调度器中选择对应的并发调度器,将异步任务发送至选择的并发调度器。终端获取异步任务的任务类型,终端根据任务请求读取配置表,配置表中记录有异步任务类型以及异步任务类型对应的并发数量。每种任务类型对应的并发数量可以是不同的。终端根据步任务类型对应的并发数量在多个并发调度器中选择对应的并发调度器。
任务类型可以根据CPU以及IO的占用率来进行分类。其中,CPU占用率较高的任务类型可以包括图片解码、数据加密等。CPU占用率较高的任务类型需要较低的任务并发数量,其并发数量可以设置为小于或者等于CPU的个数。IO占用率较高的任务类型可以包括网络请求、文件读取等。IO占用率较高的任务类型需要较高的任务并发数量,其并发数量可以设置为CPU数量的两倍。例如,网络请求的并发数量为10,则终端根据网络请求对应的并发数量在多个并发调度器中选择并发数量为10的并发调度器,将网络请求发送至并发数量为10的并发调度器。再如,数据加密任务的并发数量为5,则终端根据数据加密任务对应的并发数量在多个并发调度器中选择并发数量为5的并发调度器,将数据加密任务发送至并发数量为5的并发调度器。
步骤106,判断并发调度器发送至线程池中的任务数量是否达到对应的并发数量。若是,则执行步骤108。若否,则执行步骤110。
步骤108,将异步任务缓存至并发调度器的任务队列中。
步骤110,将异步任务标记为待执行任务。
每个并发调度器中还预先配置有任务队列,任务队列用于在发送至线程池中的任务数量达到对应的并发数量时,缓存终端发送的异步任务。终端在将异步任务发送至对应的并发调度器后,判断并发调度器的任务队列中缓存的任务数量是否超出容量。若超出容量,则拒绝执行终端发送的异步任务。若未超出容量,则判断并发调度器发送至线程池中的任务数量是否达到该并发调度器的并发数量。若是,则终端将异步任务缓存至并发调度器的任务队列中。若否,则终端将异步任务标记为待执行任务。
步骤112,通过并发调度器将待执行任务发送至线程池,并发处理待执行任务。
若并发调度器发送至线程池中的任务数量未达到该并发调度器的并发数量,则终端将异步任务标记为待执行任务。终端将待执行任务发送至线程池。线程池中预先配置有多个并发参数,每个并发参数对应设置有任务并发数量。终端通过线程池调用多线程对并发调度器发送的所有待执行任务进行并发处理。
终端接收的任务请求中携带有对应的异步任务的优先级,优先级可以是一个数值,数值越大表示优先级越高。在终端发送的待执行任务执行后,终端判断并发调度器发送至线程池中的任务数量是否达到该并发调度器对应的并发数量。若否,则终端可以在并发调度器的任务队列中提取异步任务,可以根据异步任务的优先级来提取相应的异步任务。终端在并发调度器的任务队列中提取优先级最高的目标任务。终端获取目标任务的任务类型,终端根据任务请求读取并发配置表,在并发配置表中根据任务类型获取对应的并发数量。终端将目标任务发送至线程池。若并发调度器的任务队列中存在多个优先级相同的待提取任务,则终端可以根据优先级相同的待提取任务之间的输入顺序提取目标任务,并发送至线程池。终端通过线程池调用多线程对并发调度器发送的所有目标任务进行并发处理,直至并发调度器发送至线程池中的任务数量达到该并发调度器对应的并发数量,则任务结束。若并发调度器发送至线程池中的任务数量未达到该并发调度器对应的并发数量,且并发调度器的任务队列中不存在任务,则任务结束。
在本实施例中,终端通过预先设置多个并发调度器,每个并发调度器中预先配置有并发数量,可以在面对多种类型的异步任务时,将异步任务发送至对应的并发调度器,满足多种类型的异步任务的并发需求。终端通过在并发调度器发送至线程池中的任务数量未达到对应的并发数量时,将异步任务发送至线程池,实现将并发调度器发送至线程池的任务进行并发处理,进而提高了异步任务的处理效率。
在一个实施例中,如图2所示,上述方法还包括动态调整异步任务优先级的步骤,该步骤包括:
步骤202,调用预设接口获取异步任务的状态信息,将状态信息在对应的页面中显示。
步骤204,将异步任务与对应的显示页面进行关联。
步骤206,对显示页面的生命周期进行监听,当监听到显示页面隐藏时,降低异步任务的优先级。
步骤208,当监听到显示页面显示时,提高异步任务的优先级。
步骤210,当监听到显示页面销毁时,删除异步任务以及解除异步任务与对应的显示页面之间的关联。
终端的主线程与线程池的多个线程之间可以通过接口进行通信。终端调用预设接口获取异步任务的状态消息,状态消息可以是创建、等待、就绪、运行、完成等多个状态。终端通过预设接口将异步任务的状态信息在对应的页面中进行显示。终端中预先设置有页面生命周期管理器,用于监听页面的生命周期,根据页面的生命周期发布对应的状态事件。页面的生命周期可以包括创建、显示、隐藏以及销毁等。
当异步任务第一次显示到对应的页面中时,将异步任务与对应的显示页面进行关联。终端通过页面生命周期管理器对页面的生命周期进行监听,当监听到页面隐藏时,则页面生命周期管理器发布隐藏事件至终端,终端根据隐藏事件降低异步任务的优先级,降低优先级可以是将优先级对应的数值减掉一。当页面生命周期管理器监听到页面恢复显示时,则页面生命周期管理器发布显示事件至终端,终端根据显示事件提高异步任务的优先级,提高优先级可以是将优先级对应的数值增加一。当页面生命周期管理器监听到页面销毁时,则页面生命周期管理器发布销毁事件至终端,终端根据销毁事件删除异步任务,并解除异步任务与对应的显示页面之间的关联。
在本实施例中,终端通过在异步任务与对应的显示页面之间建立关联,并监听页面的生命周期,根据页面的生命周期来动态调整异步任务的优先级,能够节约终端的计算资源。
在另一个实施例中,如图3所示,提供了一种异步任务调度方法,以该方法应用于终端为例进行说明,包括以下步骤:
步骤302,获取任务请求,根据任务请求生成对应的异步任务。
步骤304,获取异步任务对应的任务标签。
步骤306,通过分组调度器判断第一任务容器中是否存在与任务标签相同的任务,分组调度器包括第一任务容器以及第二任务容器,第一任务容器用于记录发送至每个并发调度器中的任务,第二任务容器用于缓存未发送至并发调度器中的任务。若是,则执行步骤308。若否,则执行步骤310。
步骤308,将异步任务缓存至第二任务容器中。
步骤310,将异步任务发送至对应的并发调度器,将异步任务记录于第一任务容器中。
步骤312,判断并发调度器发送至线程池中的任务数量是否达到对应的并发数量。若是,则执行步骤314。若否,则执行步骤316。
步骤314,将异步任务缓存至并发调度器的任务队列中。
步骤316,将异步任务标记为待执行任务。
步骤318,通过并发调度器将待执行任务发送至线程池,并发处理待执行任务。
步骤320,在待执行任务执行后,在第一任务容器中删除对应的记录。
步骤322,在第二任务容器中提取与任务标签对应的标签任务。
终端在获取任务请求后,对任务请求进行解析,生成对应的异步任务。终端获取异步任务对应的任务标签,任务标签可以是异步任务的路径。终端可以根据任务标签来执行异步任务。例如,当异步任务为图片加载任务时,对应的任务标签为图片路径。终端根据图片路径可以定位到对应的图片,从而实现图片加载。
终端中预先配置有分组调度器,分组调度器用于判断是否将异步任务发送至对应的并发调度器,从而控制相同任务标签的异步任务串行执行,不同任务标签的异步任务并发执行。分组调度器包括第一任务容器以及第二任务容器。第一任务容器用于记录发送至每个并发调度器中的任务。第二任务容器用于缓存未发送至并发调度器中的任务。具体地,终端通过分组调度器判断第一任务容器中是否存在与该任务标签相同的任务。若存在,则终端将异步任务缓存至第二任务容器中。若不存在,则终端终端根据任务请求读取配置表,配置表中记录有异步任务类型以及异步任务类型对应的并发数量。每种任务类型对应的并发数量可以是不同的。终端根据步任务类型对应的并发数量在多个并发调度器中选择对应的并发调度器。终端将异步任务发送至对应的并发调度器,并将异步任务记录于第一任务容器中。
当终端获取的异步任务的数量大于异步任务类型对应的并发数量时,终端可以在异步任务中选取并发数量的异步任务发送至对应的并发调度器中。终端接收的任务请求中携带有任务的优先级,终端可以根据异步任务的优先级在异步任务中选取并发数量的异步任务发送至对应的并发调度器中。终端判断并发调度器发送至线程池中的任务数量是否达到对应的并发数量。若是,则将异步任务缓存至并发调度器的任务队列中。若否,则将异步任务标记为待执行任务。终端通过并发调度器将待执行任务发送至线程池,通过线程池调用多线程对并发调度器发送的所有待执行任务进行并发处理。终端在待执行任务执行后,删除分组调度器的第一任务容器中对应的待执行任务的记录。
终端获取异步任务的任务标签,通过分组调度器判断后,若发送至并发调度器的任务对应的任务标签中不存在该任务标签,则终端将该异步任务发送至对应的并发调度器。终端通过并发调度器将标记有待执行标识的异步任务发送至线程池,通过线程池调用多线程对并发调度器发送的所有任务进行并发处理。
分组调度器包括第一任务容器以及第二任务容器。第一任务容器用于记录发送至每个并发调度器中的任务。第二任务容器用于缓存未发送至并发调度器中的任务。终端在待执行任务执行后,终端可以在分组调度器的第一任务容器中删除待执行任务的记录。终端在第二任务容器中提取该任务标签对应的标签任务,将标签任务发送至对应的并发调度器,并将标签任务记录于第一任务容器中。终端在标签任务完成后,在第二任务容器中提取该任务标签对应的任务,直至第二任务容器不存在该任务标签对应的任务,则任务结束。
在本实施例中,终端通过分组调度器判断第一任务容器中是否存在与该任务标签相同的任务,从而确定是否将异步任务发送至对应的并发调度器中。实现将相同任务标签的异步任务串行执行,不同任务标签的异步任务并发执行,终端通过在上一个异步任务完成后,从第二容器中提取与该任务标签相同的任务,从而实现将相同任务标签的异步任务串行执行,有效避免终端重复执行相同的任务,进而节约终端的流量和计算资源。
在一个实施例中,并发调度器中预先配置有任务队列,任务请求携带有异步任务的优先级,上述方法还包括:若是,将异步任务缓存至并发调度器的任务队列中;在待执行任务执行后,判断并发调度器发送至线程池中的任务数量是否达到对应的并发数量;若否,则在并发调度器的任务队列中提取优先级最高的目标任务发送至线程池;若并发调度器的任务队列中存在多个优先级相同的待提取任务,则根据优先级相同的待提取任务之间的获取顺序在并发调度器的任务队列中提取目标任务发送至线程池。
终端中预先设置有多个并发调度器,每个并发调度器中预先配置有并发数量以及任务队列,且多个并发调度器之间是相互独立的。终端获取任务请求,任务请求中携带有对应异步任务的优先级。终端在待执行调度任务完成后,终端可以判断并发调度器发送至线程池中的任务数量是否达到该并发调度器对应的并发数量。若是,则任务结束。若否,则判断并发调度器的任务队列中是否有任务,如果没有任务,则任务结束。如果有任务,则终端在并发调度器的任务队列中提取优先级最高的目标任务。若并发调度器的任务队列中存在多个优先级相同的待提取任务,则根据优先级相同的待提取任务之间的获取顺序进行任务提取。终端将提取的目标任务发送至线程池,通过线程池调用多线程对并发调度器发送的所有目标任务进行并发处理。
在本实施例中,终端可以根据异步任务的优先级来进行任务提取,能够根据异步任务的紧急程度来处理相应异步任务,及时处理优先级高的异步任务,实现终端计算资源的合理分配,从而优化终端的计算资源。
应该理解的是,虽然图1至图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1至图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种异步任务调度装置,包括:生成模块402、发送模块404、第一判断模块406、标记模块408和发送模块410,其中:
生成模块402,用于获取任务请求,根据任务请求生成对应的异步任务。
发送模块404,用于将异步任务发送至对应的并发调度器,并发调度器中预先配置有并发数量。
第一判断模块406,用于判断并发调度器发送至线程池中的任务数量是否达到对应的并发数量。
标记模块408,用于若否,则将异步任务标记为待执行任务。
发送模块410,用于通过并发调度器将待执行任务发送至线程池,并发处理待执行任务。
在一个实施例中,上述装置还包括:第二判断模块,用于获取异步任务对应的任务标签,通过分组调度器判断第一任务容器中是否存在与任务标签相同的任务;分组调度器包括第一任务容器以及第二任务容器;第一任务容器用于记录发送至每个并发层调度器中的任务;第二任务容器用于缓存未发送至并发调度器中的任务;若是,则将异步任务缓存至第二任务容器中;若否,则将异步任务发送至对应的并发调度器,将异步任务记录于第一任务容器中;在待执行任务执行后,在第一任务容器中删除对应的记录。
在一个实施例中,上述装置还包括:调整模块,用于调用预设接口获取异步任务的状态信息,将状态信息在对应的页面中显示;将异步任务与对应的显示页面进行关联;对显示页面的生命周期进行监听,当监听到显示页面隐藏时,降低异步任务的优先级;当监听到显示页面显示时,提高异步任务的优先级;当监听到显示页面销毁时,删除异步任务以及解除异步任务与对应的显示页面之间的关联。
在一个实施例中,上述装置还包括:
第一判断模块406,用于在并发调度器发送至线程池中的任务数量达到对应的并发数量时,将异步任务缓存至并发调度器的任务队列中。
第一提取模块,用于在待执行任务执行后,判断并发调度器发送至线程池中的任务数量是否达到对应的并发数量;若否,则在并发调度器的任务队列中提取优先级最高的目标任务发送至线程池;若并发调度器的任务队列中存在多个优先级相同的待提取任务,则根据优先级相同的待提取任务之间的获取顺序在并发调度器的任务队列中提取目标任务发送至线程池。
在一个实施例中,上述装置还包括:第二提取模块,用于在第二任务容器中提取与任务标签对应的的标签任务;将标签任务发送至对应的并发调度器,将标签任务记录于第一任务容器中。
关于异步任务调度装置的具体限定可以参见上文中对于异步任务调度方法的限定,在此不再赘述。上述异步任务调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种异步任务调度方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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.一种异步任务调度方法,所述方法包括:
获取任务请求,根据所述任务请求生成对应的异步任务;
将所述异步任务发送至对应的并发调度器,所述并发调度器中预先配置有并发数量;
判断所述并发调度器发送至线程池中的任务数量是否达到对应的并发数量;
若否,则将所述异步任务标记为待执行任务;
通过所述并发调度器将所述待执行任务发送至所述线程池,并发处理所述待执行任务。
2.根据权利要求1所述的方法,其特征在于,所述并发调度器中预先配置有任务队列,所述任务请求携带有所述异步任务的优先级,所述方法还包括:
若是,将所述异步任务缓存至所述并发调度器的任务队列中;
在所述待执行任务执行后,判断所述并发调度器发送至线程池中的任务数量是否达到对应的并发数量;
若否,则在所述并发调度器的任务队列中提取优先级最高的目标任务发送至所述线程池;
若所述并发调度器的任务队列中存在多个优先级相同的待提取任务,则根据所述优先级相同的待提取任务之间的获取顺序在所述并发调度器的任务队列中提取目标任务发送至所述线程池。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述异步任务对应的任务标签;
通过分组调度器判断第一任务容器中是否存在与所述任务标签相同的任务,所述分组调度器包括所述第一任务容器以及第二任务容器,所述第一任务容器用于记录发送至每个并发层调度器中的任务,所述第二任务容器用于缓存未发送至并发调度器中的任务;
若是,则将所述异步任务缓存至第二任务容器中;
若否,则将所述异步任务发送至对应的并发调度器,将所述异步任务记录于所述第一任务容器中;
在所述待执行任务执行后,在所述第一任务容器中删除对应的记录。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述第二任务容器中提取与所述任务标签对应的标签任务;
将所述标签任务发送至对应的并发调度器,将所述标签任务记录于第一任务容器中。
5.根据权利要求1-2任意一项所述的方法,其特征在于,所述方法还包括:
调用预设接口获取所述异步任务的状态信息,将所述状态信息在对应的页面中显示;
将所述异步任务与对应的显示页面进行关联;
对所述显示页面的生命周期进行监听,当监听到所述显示页面隐藏时,降低所述异步任务的优先级;
当监听到所述显示页面显示时,提高所述异步任务的优先级;
当监听到所述显示页面销毁时,删除所述异步任务以及解除所述异步任务与对应的显示页面之间的关联。
6.一种异步任务调度装置,其特征在于,所述装置包括:
生成模块,用于获取任务请求,根据所述任务请求生成对应的异步任务;
发送模块,用于将所述异步任务发送至对应的并发调度器,所述并发调度器中预先配置有并发数量;
第一判断模块,用于判断所述并发调度器发送至线程池中的任务数量是否达到对应的并发数量;
标记模块,用于若否,则将所述异步任务标记为待执行任务;
发送模块,用于通过所述并发调度器将所述待执行任务发送至所述线程池,并发处理所述待执行任务。
7.根据权利要求6所述的装置,所述装置还包括:第二判断模块,用于获取所述异步任务对应的任务标签,通过分组调度器判断第一任务容器中是否存在与所述任务标签相同的任务;所述分组调度器包括第一任务容器以及第二任务容器;所述第一任务容器用于记录发送至每个并发层调度器中的任务;所述第二任务容器用于缓存未发送至并发调度器中的任务;若是,则将所述异步任务缓存至第二任务容器中;若否,则将所述异步任务发送至对应的并发调度器,将所述异步任务记录于第一任务容器中;在所述待执行任务执行后,在所述第一任务容器中删除对应的记录。
8.根据权利要求6所述的装置,所述装置还包括:调整模块,用于调用预设接口获取所述异步任务的状态信息,将所述状态信息在对应的页面中显示;将所述异步任务与对应的显示页面进行关联;对所述显示页面的生命周期进行监听,当监听到所述显示页面隐藏时,降低所述异步任务的优先级;当监听到所述显示页面显示时,提高所述异步任务的优先级;当监听到所述显示页面销毁时,删除所述异步任务以及解除所述异步任务与对应的显示页面之间的关联。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述方法的步骤。
CN201910720545.2A 2019-08-06 2019-08-06 异步任务调度方法、装置、计算机设备和存储介质 Pending CN110515710A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910720545.2A CN110515710A (zh) 2019-08-06 2019-08-06 异步任务调度方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910720545.2A CN110515710A (zh) 2019-08-06 2019-08-06 异步任务调度方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN110515710A true CN110515710A (zh) 2019-11-29

Family

ID=68625213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910720545.2A Pending CN110515710A (zh) 2019-08-06 2019-08-06 异步任务调度方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN110515710A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176797A (zh) * 2019-12-18 2020-05-19 北京百度网讯科技有限公司 数据并发的处理方法、装置、电子设备及可读存储介质
CN111263061A (zh) * 2020-01-22 2020-06-09 青岛海信医疗设备股份有限公司 摄像头控制方法和通信终端
CN112181622A (zh) * 2020-09-30 2021-01-05 苏州达家迎信息技术有限公司 任务调度方法、装置、计算机设备和存储介质
CN112988356A (zh) * 2021-03-30 2021-06-18 北京大米科技有限公司 异步调用方法、装置、存储介质及电子设备
CN114125062A (zh) * 2021-11-25 2022-03-01 北京达佳互联信息技术有限公司 任务信息显示方法及装置
CN114860403A (zh) * 2022-05-11 2022-08-05 科东(广州)软件科技有限公司 一种任务调度方法、装置、设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103390041A (zh) * 2013-07-18 2013-11-13 杭州东信北邮信息技术有限公司 一种基于中间件提供数据服务的方法和系统
CN104572277A (zh) * 2014-12-17 2015-04-29 大唐移动通信设备有限公司 一种线程流控方法和装置
US20180246755A1 (en) * 2013-06-24 2018-08-30 Sap Se Task Scheduling for Highly Concurrent Analytical and Transaction Workloads
CN109558255A (zh) * 2018-12-13 2019-04-02 广东浪潮大数据研究有限公司 一种任务处理的方法及任务处理装置
CN109710400A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 线程资源分组的方法及装置
CN110018892A (zh) * 2019-03-12 2019-07-16 平安普惠企业管理有限公司 基于线程资源的任务处理方法及相关装置
CN110046038A (zh) * 2019-03-12 2019-07-23 平安普惠企业管理有限公司 一种基于线程池的任务处理方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180246755A1 (en) * 2013-06-24 2018-08-30 Sap Se Task Scheduling for Highly Concurrent Analytical and Transaction Workloads
CN103390041A (zh) * 2013-07-18 2013-11-13 杭州东信北邮信息技术有限公司 一种基于中间件提供数据服务的方法和系统
CN104572277A (zh) * 2014-12-17 2015-04-29 大唐移动通信设备有限公司 一种线程流控方法和装置
CN109558255A (zh) * 2018-12-13 2019-04-02 广东浪潮大数据研究有限公司 一种任务处理的方法及任务处理装置
CN109710400A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 线程资源分组的方法及装置
CN110018892A (zh) * 2019-03-12 2019-07-16 平安普惠企业管理有限公司 基于线程资源的任务处理方法及相关装置
CN110046038A (zh) * 2019-03-12 2019-07-23 平安普惠企业管理有限公司 一种基于线程池的任务处理方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PINTO, GUSTAVO: "Understanding Energy Behaviors of Thread Management Constructs", 《ACM SIGPLAN NOTICES》 *
仲济源: "GIST特征提取的异构并发流计算实现", 《计算机工程与应用》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176797A (zh) * 2019-12-18 2020-05-19 北京百度网讯科技有限公司 数据并发的处理方法、装置、电子设备及可读存储介质
CN111176797B (zh) * 2019-12-18 2023-10-27 北京百度网讯科技有限公司 数据并发的处理方法、装置、电子设备及可读存储介质
CN111263061A (zh) * 2020-01-22 2020-06-09 青岛海信医疗设备股份有限公司 摄像头控制方法和通信终端
CN111263061B (zh) * 2020-01-22 2021-07-06 青岛海信医疗设备股份有限公司 摄像头控制方法和通信终端
CN112181622A (zh) * 2020-09-30 2021-01-05 苏州达家迎信息技术有限公司 任务调度方法、装置、计算机设备和存储介质
CN112988356A (zh) * 2021-03-30 2021-06-18 北京大米科技有限公司 异步调用方法、装置、存储介质及电子设备
CN114125062A (zh) * 2021-11-25 2022-03-01 北京达佳互联信息技术有限公司 任务信息显示方法及装置
CN114860403A (zh) * 2022-05-11 2022-08-05 科东(广州)软件科技有限公司 一种任务调度方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
CN110515710A (zh) 异步任务调度方法、装置、计算机设备和存储介质
CN108090731B (zh) 一种信息处理方法及设备
CN102508716B (zh) 任务控制装置和任务控制方法
CN107832126A (zh) 一种线程的调整方法及其终端
CN111338791A (zh) 集群队列资源的调度方法、装置、设备及存储介质
CN108563493A (zh) 一种事件驱动方法、装置、设备及可读存储介质
CN102752387B (zh) 数据存储处理系统和数据存储处理方法
CN103581187A (zh) 访问权限的控制方法及控制系统
CN110908837B (zh) 应用程序异常处理方法、装置、电子设备及存储介质
CN110532205A (zh) 数据传输方法、装置、计算机设备和计算机可读存储介质
TW201015440A (en) Lock windows for reducing contention
CN113346573A (zh) 移动电源充电机柜的充电管理方法、装置和计算机设备
CN110990132B (zh) 异步任务处理方法、装置、计算机设备和存储介质
CN103927244B (zh) 一种基于动态代理实现的插件调度过程监控的方法
CN103631586A (zh) 进行场景化交互处理的方法和系统
CN106557404B (zh) 一种应用控制的方法及移动终端
CN111222821A (zh) 一种货品补充方法、装置、计算机设备和存储介质
CN103197950B (zh) 插件虚拟机实现方法
CN115686782A (zh) 基于固态硬盘的资源调度方法、装置、电子设备及存储介质
CN113742059B (zh) 任务分配方法、装置、计算机设备和存储介质
CN116089040A (zh) 业务流程的调度方法及其装置、电子设备及存储介质
CN112748883B (zh) 一种io请求流水线处理设备、方法、系统及存储介质
US20160004576A1 (en) Apparatus for managing application program and method therefor
TW200813819A (en) Computer micro-jobs
CN113507500A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200611

Address after: 518000 Guangdong city of Shenzhen province Qianhai Shenzhen Hong Kong cooperation zone before Bay Road No. 1 building 201 room A (located in Shenzhen Qianhai business secretary Co. Ltd.)

Applicant after: Shenzhen card number Technology Co.,Ltd.

Address before: 518000 8th floors Nan Zuo801 chambers, science and technology Nan Shi bis-B, JinDie Software garden, road, Southern Hi-Tech Zone, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: SHENZHEN READILY TECHNOLOGY Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191129