CN117056049A - 异步任务执行方法和系统 - Google Patents

异步任务执行方法和系统 Download PDF

Info

Publication number
CN117056049A
CN117056049A CN202311035485.3A CN202311035485A CN117056049A CN 117056049 A CN117056049 A CN 117056049A CN 202311035485 A CN202311035485 A CN 202311035485A CN 117056049 A CN117056049 A CN 117056049A
Authority
CN
China
Prior art keywords
task
asynchronous
executor
application
asynchronous task
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
CN202311035485.3A
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202311035485.3A priority Critical patent/CN117056049A/zh
Publication of CN117056049A publication Critical patent/CN117056049A/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种异步任务执行方法和系统,涉及大数据处理及分布式处理技术领域,方法包括:接收应用提交的异步任务,并为异步任务分配全局唯一任务编号;将异步任务传入任务队列中的消息队列并将任务编号写入数据库;在执行器空闲时从预先订阅的消息队列中获取异步任务,并在数据库中写入与异步任务的任务编号相对应的执行器编号;在异步任务执行完成后将执行结果写入所述数据库。本申请由执行器通过订阅任务队列中的消息队列,然后在执行器空闲时从所述消息队列中获取异步任务并执行,因此无需额外设置管控节点来调节执行器的任务执行,对执行器进行了解耦,因此可以根据应用场景配置不同规模的执行器,满足实际业务的需求。

Description

异步任务执行方法和系统
技术领域
本发明涉及大数据处理及分布式处理技术领域,可用于金融领域,尤其涉及一种异步任务执行方法和系统。
背景技术
现有异步任务执行框架一般是由一个管控节点接收外部提交的任务,然后从分布式应用程序协调服务软件(Zookeeper)处获取所有可用的工作节点的负载信息,根据负载信息按照预设调度算法获取从所有可用的工作节点中选择出的工作节点地址,把任务发送至选择出的工作节点上;选择出的工作节点读取队列中的任务并执行任务。这种异步任务执行方法,工作节点(相当于任务执行器)需要将自己注册到管控节点,管控节点再将任务分配到任务执行器,管控节点与任务执行器的耦合较重,无论是管控节点还是任务执行器都不易扩缩。
发明内容
有鉴于此,本发明提供一种异步任务执行方法和系统,以解决上述提及的至少一个问题。
为了实现上述目的,本发明采用以下方案:
根据本发明的第一方面,提供一种异步任务执行方法,所述方法包括:接收应用提交的异步任务,并为所述异步任务分配全局唯一任务编号;将所述异步任务传入任务队列中的消息队列并将所述任务编号写入数据库;在执行器空闲时从预先订阅的所述消息队列中获取所述异步任务,并在所述数据库中写入与所述异步任务的任务编号相对应的执行器编号;在所述异步任务执行完成后将执行结果写入所述数据库。
作为本发明的一个实施例,上述方法中将所述异步任务传入任务队列中的消息队列包括:将所述任务队列中的消息队列按照优先级进行分类,基于所述异步任务设定的优先级将所述异步任务传入对应优先级的消息队列。
作为本发明的一个实施例,上述方法中在执行器空闲时从所述任务队列获取所述异步任务包括:在执行器空闲时依据优先级高低先从高优先级队列中消费异步任务。
作为本发明的一个实施例,上述方法还包括:将执行器启动时的启动注册消息发送到所述任务队列中的心跳消息队列中。
作为本发明的一个实施例,上述方法还包括:订阅所述任务队列中的心跳消息队列,当获取到执行器的启动注册消息时,监控所述执行器的心跳,若超过预设时间阈值未收到所述执行器的心跳信息,则从所述数据库中获取已领取的异步任务,并将所述已领取的异步任务重新提交至所述任务队列的消息队列中。
作为本发明的一个实施例,上述方法中接收应用提交的异步任务包括:通过方法、http接口或分布式服务的方式接收应用提交的异步任务。
作为本发明的一个实施例,上述方法中通过方法的方式接收应用提交的异步任务包括:所述应用利用jar包,在应用开发阶段引入应用的java工程,通过直接编写java程序调用方法提交异步任务;所述通过http接口的方式接收应用提交的异步任务包括:所述为应用提供http接口,所述应用通过http方式调用接口提交异步任务;所述通过分布式服务的方式接收应用提交的异步任务包括:为应用提供分布式服务,所述应用通过调用所述分布式服务提交异步任务。
根据本发明的第二方面,提供一种异步任务执行系统,所述系统包括:任务触发器、任务队列和执行器,所述任务触发器接收应用提交的异步任务,并为所述异步任务分配全局唯一任务编号,然后将所述异步任务传入任务队列中的消息队列并将所述任务编号写入数据库;所述执行器在执行器空闲时从预先订阅的消息队列中获取所述异步任务,并在所述数据库中写入与所述异步任务的任务编号相对应的执行器编号;在所述异步任务执行完成后将执行结果写入所述数据库。
作为本发明的一个实施例,上述任务触发器将所述异步任务传入任务队列中的消息队列包括:任务触发器将所述任务队列中的消息队列按照优先级进行分类,基于所述异步任务设定的优先级将所述异步任务传入对应优先级的消息队列。
作为本发明的一个实施例,上述执行器在执行器空闲时从所述任务队列获取所述异步任务包括:执行器在执行器空闲时依据优先级高低先从高优先级队列中消费异步任务。
作为本发明的一个实施例,上述执行器启动时将启动注册消息发送到所述任务队列中的心跳消息队列中。
作为本发明的一个实施例,上述任务触发器还包括异常任务触发器,其用于订阅所述任务队列中的心跳消息队列,当获取到执行器的启动注册消息时,监控所述执行器的心跳,若超过预设时间阈值未收到所述执行器的心跳信息,则从所述数据库中获取所述执行器已领取的异步任务,并将所述执行器已领取的异步任务重新提交至所述任务队列的消息队列中。
作为本发明的一个实施例,上述任务触发器接收应用提交的异步任务包括:所述任务触发器通过方法、http接口或分布式服务的方式接收应用提交的异步任务。
作为本发明的一个实施例,上述任务触发器通过方法的方式接收应用提交的异步任务包括:所述应用利用jar包,在应用开发阶段引入应用的java工程,通过直接编写java程序调用方法向所述任务触发器提交异步任务;所述任务触发器通过http接口的方式接收应用提交的异步任务包括:所述任务触发器为应用提供http接口,所述应用通过http方式调用接口提交异步任务;所述任务触发器通过分布式服务的方式接收应用提交的异步任务包括:所述任务触发器为应用提供分布式服务,所述应用通过调用所述分布式服务提交异步任务。
根据本发明的第三方面,提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,处理器执行所述计算机程序时实现上述方法的步骤。
根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
由上述技术方案可知,本发明提供的异步任务执行方法和系统,由执行器通过订阅任务队列中的消息队列,然后在执行器空闲时从所述消息队列中获取异步任务并执行,因此无需额外设置管控节点来调节执行器的任务执行,对执行器进行了解耦,因此可以根据应用场景配置不同规模的执行器,满足实际业务的需求。另外本申请异步任务执行过程中的所有任务状态信息都由独立的数据库所记录,而接收任务的任务触发器、任务队列以及负载任务执行的执行器都与任务的状态信息所解耦,因此可以进一步方便地根据需求扩展任务触发器、任务队列以及任务执行器。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请实施例提供的一种异步任务执行方法的流程示意图;
图2是本申请另一实施例提供的一种异步任务执行方法的流程示意图;
图3是本申请实施例提供的异步任务重分配的流程示意图;
图4是本申请实施例提供的一种异步任务执行系统的结构示意图;
图5是本申请实施例提供的电子设备的系统构成示意框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
如图1所示为本申请实施例提供的一种异步任务执行方法的流程示意图,该方法包括如下步骤:
步骤S101:接收应用提交的异步任务,并为所述异步任务分配全局唯一任务编号。
本步骤可以由任务触发器来完成,任务触发器是异步任务的提交入口,其可以有应用系统实时触发、定时触发等形式。在本实施例中,任务触发器可以有多个同时工作,任务触发器可以为应用系统提供方法、接口、分布式服务等多种异步任务提交方式,但无论是哪种提交方式,本申请的任务触发器都可以通过PaaS方式进行部署,从而可以较为方便地实现触发器的扩缩。下面对着三种异步任务提交方式分别进行介绍:
应用系统通过方法方式向任务触发器提交异步任务,是指任务触发器提供jar包,业务系统可以直接编写java程序调用方法来提交异步任务。这种方式下本实施例的异步任务执行系统是和应用系统部署在一起的。
应用系统通过接口方式向任务触发器提交异步任务,是指任务触发器为应用系统提供http接口,应用系统通过http方式调用接口提交异步任务。这种方式下本实施例的异步任务执行系统可以和应用系统各自独立部署。
应用系统通过分布式服务向任务触发器提交异步任务,是指任务触发器为应用提供分布式服务,应用可以通过调用所述分布式服务提交异步任务。这种方式下本实施例的异步任务执行系统可以和应用系统也是各自独立部署的。这种部署方式当应用系统的异步任务量比较大的时候,系统可以扩展触发器的数量,以分布式服务的方式让应用系统提交异步任务。
步骤S102:将所述异步任务传入任务队列中的消息队列并将所述任务编号写入数据库。
任务触发器在收到应用提交的异步任务后,首先为每个异步任务生成一个全局唯一任务编号,然后将该任务编号与提交的异步任务信息一起封装后传入任务队列中的消息队列,同时,任务触发器会将该任务编号写入数据库,代表该异步任务已经进入了消息队列。
优选的,在本实施例中,应用系统在向任务触发器提交异步任务的时候,可以为该异步任务设置优先级,而本实施例的任务队列则可以包括若干个消息队列,每个消息队列也可以对应不同的优先级,因此本实施例中任务触发器在将异步任务传入任务队列时,可以根据异步任务的优先级将异步任务传入对应优先级的消息队列。队列优先级的设置满足了异步任务的优先执行需求。
另外,本申请的消息队列可以使用分布式部署方式,比如采用kafka的形式,这样可以通过增加分区数量来实现后续的扩容。
步骤S103:在执行器空闲时从预先订阅的消息队列中获取所述异步任务,并在所述数据库中写入与所述异步任务的任务编号相对应的执行器编号。
在本实施例中,每个执行器都可以设置一个线程池,该线程池的大小可以通过参数进行设置,所有线程池的大小之和即为系统的任务执行总并发度。执行器可以订阅上述任务队列中的消息队列,当执行器的线程池中有空闲线程时,执行器即可以从任务队列的消息队列中获取异步任务。若消息队列及异步任务带有优先级设置,则执行器优先从高优先级消息队列中获取异步任务,若高优先级消息队列中不存在任务,则从低一级消息队列中获取,依次轮询获取并执行。本实施例的执行器也可以采用分布式的部署方式,比如PaaS部署的方式。
当执行器成功从消息队列中获取到异步任务,则更新数据库中对应任务编号的记录,写入相对应的执行器编号,另外,本申请在数据库中写入执行器编号的同时,还可以更新消息队列的offset,来避免任务执行器在重启时任务被重复执行以及保证执行器在重启时可以实现断点执行。这里消息队列的offset是指消息队列的服务器端记录下来作为执行器的消费者已领取到哪条任务,这样在执行器重启后可以在断点处继续往下执行,而无需从头开始。
步骤S104:在所述异步任务执行完成后将执行结果写入所述数据库。
优选的,本实施例中的任务队列还可以包括一个心跳消息队列,其用于存储执行器的心跳信息,当执行器启动的时候将启动注册消息发送到所述任务队列中的心跳消息队列中。相应的,本实施例的任务触发器还包括一异常任务触发器,其可以订阅所述任务队列中的心跳消息队列,当获取到执行器的启动注册消息时,便监控所述执行器的心跳,若超过预设时间阈值(比如5分钟)未收到所述执行器的心跳信息,则从所述数据库中获取所述执行器已领取但未完成的异步任务,并将所述执行器已领取的但未完成的异步任务重新按照优先级顺序提交至所述任务队列的消息队列中。
进一步优选的,本申请的数据库虽然非主要压力点,但是也可以通过采用分布式数据库,来基于任务编号分表实现性能容量的扩容。
由上述可知,本申请由执行器通过订阅任务队列中的消息队列,然后在执行器空闲时从所述消息队列中获取异步任务并执行,因此无需额外设置管控节点来调节执行器的任务执行,对执行器进行了解耦,因此可以根据应用场景配置不同规模的执行器,满足实际业务的需求。另外,本申请的触发器以及执行器并不记录具体的业务信息,业务状态信息均由独立的数据库来记录,因此对于触发器及执行器来说均为无状态设计,因此较易通过分布式部署的方式(比如PaaS部署)来实现快速大规模部署,同时,结合PaaS的动态扩缩容技术,可以实现随业务高峰波谷实现异步任务执行框架的动态扩缩。其次本申请任务队列中的消息队列也可以采用分布式的部署方式(比如kafka)因此也可以通过增加分区数量来实现扩容。可见,本申请提供了一种异步任务执行方法,应用系统可以根据应用场景配置不同规模的触发器、任务队列、执行器,以满足实际业务的需求。
如图2所示为本申请另一实施例提供的一种异步任务执行方法的流程示意图,该方法包括如下步骤:
步骤S201:应用向任务触发器提交需要执行的异步任务。
步骤S202:任务触发器在收到异步任务后为所述异步任务分配全局唯一任务编号。
步骤S203:任务触发器根据所述异步任务的优先级将所述异步任务传入对应优先级的消息队列。
不走S204:任务触发器将传入消息队列的异步任务的任务编号写入数据库。
步骤S205:执行器启动时订阅所述任务队列中的消息队列,从所述消息队列中优先消费优先级高的异步任务。
步骤S206:执行器收到异步任务后,在数据库中为该异步任务写入执行器编号。
步骤S207:执行器更新offset到消息队列。
步骤S208:执行器在所述异步任务执行完成后将执行结果写入所述数据库。
上述步骤描述了本申请的常规执行步骤,另外,本申请还加入了执行器异常时的任务重分配机制,如图3所示为本申请实施例提供的异步任务重分配的流程示意图,其包括如下流程:首先执行器启动时将启动注册消息发送到所述任务队列中的心跳消息队列中,然后执行器在运行过程中按固定时间间隔向心跳消息队列发送心跳消息。异常任务触发器订阅所述心跳消息队列,当获取到执行器的启动注册消息时,监控所述执行器的心跳,若超过预设时间阈值未收到所述执行器的心跳信息,则从所述数据库中获取所述执行器已领取的异步任务,并将所述执行器已领取的异步任务重新提交至所述任务队列的消息队列中。
由上述可知,本申请由执行器通过订阅任务队列中的消息队列,然后在执行器空闲时从所述消息队列中获取异步任务并执行,因此无需额外设置管控节点来调节执行器的任务执行,对执行器进行了解耦,因此可以根据应用场景配置不同规模的执行器,满足实际业务的需求。另外,本申请的触发器以及执行器并不记录具体的业务信息,业务状态信息均由独立的数据库来记录,因此对于触发器及执行器来说均为无状态设计,因此较易通过分布式部署的方式(比如PaaS部署)来实现快速大规模部署,同时,结合PaaS的动态扩缩容技术,可以实现随业务高峰波谷实现异步任务执行框架的动态扩缩。其次本申请任务队列中的消息队列也可以采用分布式的部署方式(比如kafka)因此也可以通过增加分区数量来实现扩容。可见,本申请提供了一种异步任务执行方法,应用系统可以根据应用场景配置不同规模的触发器、任务队列、执行器,以满足实际业务的需求。
如图4所示为本申请实施例提供的一种可扩展的异步任务执行系统的结构示意图,该系统包括任务触发器410、任务队列420和执行器430,其中任务触发器410和执行器430均可以设置多个,任务队列420可以由多个消息队列、一个心跳消息队列和数据库组成。
任务触发器410应用提交的异步任务,并为所述异步任务分配全局唯一任务编号,然后将所述异步任务传入任务队列420中的消息队列并将所述任务编号写入数据库;执行器430在执行器空闲时从所述预先订阅的消息队列中获取所述异步任务,并在所述数据库中写入与所述异步任务的任务编号相对应的执行器编号,然后在所述异步任务执行完成后将执行结果写入所述数据库。
优选的,上述任务触发器410将所述异步任务传入任务队列420包括:任务触发器410将所述任务队列中的消息队列按照优先级进行分类,基于所述异步任务设定的优先级将所述异步任务传入对应优先级的消息队列。
优选的,上述执行器430从所述任务队列420获取所述异步任务包括:执行器430在执行器空闲时依据优先级高低先从高优先级队列中消费异步任务。
优选的,上述执行器430启动时将启动注册消息发送到所述任务队列420中的心跳消息队列中。
优选的,上述任务触发器还包括异常任务触发器440,其用于订阅所述任务队列420中的心跳消息队列,当获取到执行器430的启动注册消息时,监控所述执行器430的心跳,若超过预设时间阈值未收到所述执行器430的心跳信息,则从所述数据库中获取所述执行器430已领取的异步任务,并将所述执行器430已领取的异步任务重新提交至所述任务队列420的消息队列中。
优选的,上述任务触发器410接收应用提交的异步任务包括:所述任务触发器通过方法、http接口或分布式服务的方式接收应用提交的异步任务。
优选的,上述任务触发器410通过方法的方式接收应用提交的异步任务包括:所述任务触发器为应用提供jar包,所述应用通过直接编写java程序调用方法向所述任务触发器提交异步任务;所述任务触发器通过http接口的方式接收应用提交的异步任务包括:所述任务触发器为应用提供http接口,所述应用通过http方式调用接口提交异步任务;所述任务触发器通过分布式服务的方式接收应用提交的异步任务包括:所述任务触发器通过PaaS部署的方式接收应用提交的异步任务。
由上述可知,本申请由执行器通过订阅任务队列中的消息队列,然后在执行器空闲时从所述消息队列中获取异步任务并执行,因此无需额外设置管控节点来调节执行器的任务执行,对执行器进行了解耦,因此可以根据应用场景配置不同规模的执行器,满足实际业务的需求。另外,本申请的触发器以及执行器并不记录具体的业务信息,业务状态信息均由独立的数据库来记录,因此对于触发器及执行器来说均为无状态设计,因此较易通过分布式部署的方式(比如PaaS部署)来实现快速大规模部署,同时,结合PaaS的动态扩缩容技术,可以实现随业务高峰波谷实现异步任务执行框架的动态扩缩。其次本申请任务队列中的消息队列也可以采用分布式的部署方式(比如kafka)因此也可以通过增加分区数量来实现扩容。可见,本申请提供了一种异步任务执行方法,应用系统可以根据应用场景配置不同规模的触发器、任务队列、执行器,以满足实际业务的需求。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有执行上述方法的计算机程序。
如图5所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理器130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图5中所示的所有部件;此外,电子设备600还可以包括图5中没有示出的部件,可以参考现有技术。
如图5所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种异步任务执行方法,其特征在于,所述方法包括:
接收应用提交的异步任务,并为所述异步任务分配全局唯一任务编号;
将所述异步任务传入任务队列中的消息队列并将所述任务编号写入数据库;
在执行器空闲时从预先订阅的消息队列中获取所述异步任务,并在所述数据库中写入与所述异步任务的任务编号相对应的执行器编号;
在所述异步任务执行完成后将执行结果写入所述数据库。
2.如权利要求1所述的异步任务执行方法,其特征在于,所述将所述异步任务传入任务队列中的消息队列包括:将所述任务队列中的消息队列按照优先级进行分类,基于所述异步任务设定的优先级将所述异步任务传入对应优先级的消息队列。
3.如权利要求2所述的异步任务执行方法,其特征在于,所述在执行器空闲时从所述任务队列获取所述异步任务包括:在执行器空闲时依据优先级高低先从高优先级队列中消费异步任务。
4.如权利要求3所述的异步任务执行方法,其特征在于,所述方法还包括:将执行器启动时的启动注册消息发送到所述任务队列中的心跳消息队列中。
5.如权利要求4所述的异步任务执行方法,其特征在于,所述方法还包括:订阅所述任务队列中的心跳消息队列,当获取到执行器的启动注册消息时,监控所述执行器的心跳,若超过预设时间阈值未收到所述执行器的心跳信息,则从所述数据库中获取已领取的异步任务,并将所述已领取的异步任务重新提交至所述任务队列的消息队列中。
6.如权利要求1所述的异步任务执行方法,其特征在于,所述接收应用提交的异步任务包括:通过方法、http接口或分布式服务的方式接收应用提交的异步任务。
7.如权利要求6所述的异步任务执行方法,其特征在于,通过方法的方式接收应用提交的异步任务包括:应用利用jar包,在应用开发阶段引入应用的java工程,通过直接编写java程序调用方法提交异步任务;
通过http接口的方式接收应用提交的异步任务包括:为应用提供http接口,所述应用通过http方式调用接口提交异步任务;
通过分布式服务的方式接收应用提交的异步任务包括:为应用提供分布式服务,所述应用通过调用所述分布式服务提交异步任务。
8.一种异步任务执行系统,其特征在于,所述系统包括:任务触发器、任务队列和执行器,所述任务触发器接收应用提交的异步任务,并为所述异步任务分配全局唯一任务编号,然后将所述异步任务传入任务队列中的消息队列并将所述任务编号写入数据库;所述执行器在执行器空闲时从预先订阅的消息队列中获取所述异步任务,并在所述数据库中写入与所述异步任务的任务编号相对应的执行器编号;在所述异步任务执行完成后将执行结果写入所述数据库。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
CN202311035485.3A 2023-08-16 2023-08-16 异步任务执行方法和系统 Pending CN117056049A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311035485.3A CN117056049A (zh) 2023-08-16 2023-08-16 异步任务执行方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311035485.3A CN117056049A (zh) 2023-08-16 2023-08-16 异步任务执行方法和系统

Publications (1)

Publication Number Publication Date
CN117056049A true CN117056049A (zh) 2023-11-14

Family

ID=88658471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311035485.3A Pending CN117056049A (zh) 2023-08-16 2023-08-16 异步任务执行方法和系统

Country Status (1)

Country Link
CN (1) CN117056049A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118394531A (zh) * 2024-06-27 2024-07-26 上海甄零科技有限公司 一种异步程序处理方法、系统及计算机设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118394531A (zh) * 2024-06-27 2024-07-26 上海甄零科技有限公司 一种异步程序处理方法、系统及计算机设备

Similar Documents

Publication Publication Date Title
EP3547715B1 (en) Method and apparatus for reducing continuous-wakeup delay of bluetooth loudspeaker, and bluetooth loudspeaker
CN112463535B (zh) 多集群异常处理方法及装置
CN117056049A (zh) 异步任务执行方法和系统
CN111796770B (zh) 日志路由负载均衡实现方法及装置
CN103179433A (zh) 一种视频内容提供系统、方法及服务节点
CN111949614B (zh) 银行系统文件转换方法及装置
CN113515320A (zh) 一种硬件加速处理方法、装置以及服务器
CN111464628B (zh) 多路复用异步处理系统及方法
CN114257532B (zh) 服务端状态探测方法及装置
CN113326025B (zh) 一种单一集群远程持续发布方法及装置
CN112396511B (zh) 分布式风控变量数据处理方法、装置及系统
CN112927065A (zh) 批量抛账处理方法及装置
CN113672172A (zh) 应用于led显示控制系统的数据交互方法以及接收卡
CN112734545A (zh) 区块链数据共享方法、装置及系统
CN117354373A (zh) 一种基于通知参数模块化组装的异步通知方法及系统
US12019909B2 (en) IO request pipeline processing device, method and system, and storage medium
CN113253938B (zh) 数据处理方法、装置、设备、存储介质及计算机程序产品
CN115776486A (zh) 一种基于交换节点分层组团的电子文件交换方法及系统
CN113918436A (zh) 日志处理方法及装置
JP2697588B2 (ja) 通信タスク管理方式
CN113176854A (zh) 服务治理数据的处理方法、装置及系统
CN113553152A (zh) 作业调度方法及装置
CN113342501B (zh) 系统故障处理方法及装置
CN113051037A (zh) MySQL高可用组的调度方法及系统
CN113037839B (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