CN118051316A - 任务的异步处理方法、装置及存储介质 - Google Patents

任务的异步处理方法、装置及存储介质 Download PDF

Info

Publication number
CN118051316A
CN118051316A CN202410444738.0A CN202410444738A CN118051316A CN 118051316 A CN118051316 A CN 118051316A CN 202410444738 A CN202410444738 A CN 202410444738A CN 118051316 A CN118051316 A CN 118051316A
Authority
CN
China
Prior art keywords
task
tasks
management platform
container management
task processing
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
CN202410444738.0A
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202410444738.0A priority Critical patent/CN118051316A/zh
Publication of CN118051316A publication Critical patent/CN118051316A/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
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及电数字数据处理领域,尤其涉及一种任务的异步处理方法、装置及存储介质。所述方法包括:容器管理平台获取待处理的多个任务,任务用于指示对目标容器进行目标操作;将多个任务提交到消息队列中,消息队列用于指示代理服务器异步处理多个任务,并将任务处理结果发送至容器管理平台;接收代理服务器发送的任务处理结果,任务处理结果用于指示多个任务是否处理成功。本公开实施例通过容器管理平台使用消息队列来实现异步消息传递,即将需要异步处理的多个任务提交到消息队列中,由代理服务器异步处理这多个任务,将任务处理从原有的同步执行‑等待模式变为异步的发送‑回调模式,极大地提高了容器管理平台的操作效率。

Description

任务的异步处理方法、装置及存储介质
技术领域
本公开涉及电数字数据处理领域,尤其涉及一种任务的异步处理方法、装置及存储介质。
背景技术
容器管理平台是一套用于自动化部署、管理和扩展容器化应用的系统,可以包括linux操作系统内部的容器编排和管理的工具。在通用人工智能时代,容器管理平台在大模型的训练、开发等过程中扮演着重要的角色。一方面,容器管理平台可以有效地调度和管理大模型训练所需要的计算资源,确保大模型的高效运行;另一方面,容器管理平台(例如Kubernetes)通过容器化技术为大模型提供了隔离的运行环境。
相关技术中,对容器进行操作的过程一般包括如下步骤(以创建容器为例):用户设备向容器管理平台发送容器创建请求,该容器创建请求中包括用于指示创建容器的任务,容器管理平台接收到该容器创建请求中的任务后,容器管理平台将该任务发送至任务处理器,通过任务处理器同步处理该任务,按照调度的顺序对物理机资源进行调度,然后进入容器启动的相应进程。
但是上述方法中,容器管理平台与任务处理器是同步处理的,容器管理平台在发送任务后会等待,直到任务处理器的操作完成才继续执行后续的操作,极大地降低了容器管理平台的操作效率。
发明内容
有鉴于此,本公开提出了一种任务的异步处理方法、装置及存储介质。本公开实施例通过容器管理平台使用消息队列来实现异步消息传递,即将需要异步处理的多个任务提交到消息队列中,由代理服务器异步处理这多个任务,将任务处理从原有的同步执行-等待模式变为异步的发送-回调模式,极大地提高了容器管理平台的操作效率。
根据本公开的一方面,提供了一种任务的异步处理方法,用于容器管理平台中,所述方法包括:
获取待处理的多个任务,所述任务用于指示对目标容器进行目标操作;
将所述多个任务提交到消息队列中,所述消息队列用于指示代理服务器异步处理所述多个任务,并将任务处理结果发送至所述容器管理平台;
接收所述代理服务器发送的所述任务处理结果,所述任务处理结果用于指示所述多个任务是否处理成功。
在一种可能的实现方式中,所述方法还包括:
接收用户设备发送的任务处理请求,所述任务处理请求包括待处理的任务;
将所述任务处理请求中的任务的信息保存在数据库中,所述数据库用于存储任务的信息;
所述获取待处理的多个任务,包括:
在所述数据库所存储的任务中,获取待处理的所述多个任务,所述多个任务包括所述任务处理请求中的任务。
在另一种可能的实现方式中,所述任务处理请求还包括身份信息,所述将所述任务处理请求中的任务的信息保存在数据库中,包括:
根据所述身份信息进行身份验证;
当所述身份验证成功时,将所述任务处理请求中的任务的信息保存在所述数据库中。
在另一种可能的实现方式中,所述将所述任务处理请求中的任务的信息保存在数据库中之后,还包括:
当所述任务处理请求中的任务在所述数据库中保存成功时,向所述用户设备返回第一信息,所述第一信息用于指示所述任务处理请求中的任务保存成功。
在另一种可能的实现方式中,所述将所述多个任务提交到消息队列中,包括:
将所述多个任务以消息形式,分批次、按顺序地提交到所述消息队列中。
在另一种可能的实现方式中,所述接收所述代理服务器发送的所述任务处理结果之后,还包括:
根据所述任务处理结果,在数据库中更新至少一个所述任务的任务状态,所述任务状态包括待处理、进行中、暂停、已完成、失败、停止中的一种。
在另一种可能的实现方式中,所述方法还包括:
接收所述代理服务器每隔第一预设时间间隔发送的第一状态信息,所述第一状态信息包括所述容器管理平台对应的至少一个所述任务的任务状态和/或机器状态;或者,每隔第二预设时间段从所述代理服务器中获取所述第一状态信息;
根据所述第一状态信息,在数据库中更新至少一个所述任务的任务状态和/或机器状态。
在另一种可能的实现方式中,所述方法还包括:
接收用户设备每隔第三预设时间段发送的状态查询请求;
根据所述状态查询请求,在数据库中查询第二状态信息,所述第二状态信息包括所述用户设备对应的至少一个所述任务的任务状态和/或机器状态;
将查询到的所述第二状态信息返回至所述用户设备。
在另一种可能的实现方式中,所述方法还包括:
每隔第四预设时间段在数据库中获取第二状态信息,将获取到的所述第二状态信息返回至用户设备。
在另一种可能的实现方式中,所述容器管理平台、所述消息队列和所述代理服务器部署在不同的服务器上。
根据本公开的另一方面,提供了一种任务的异步处理方法,用于代理服务器中,所述方法包括:
从消息队列中获取多个任务,所述多个任务是容器管理平台获取并提交至所述消息队列中的,所述任务用于指示对目标容器进行目标操作;
异步处理所述多个任务得到任务处理结果,所述任务处理结果用于指示所述多个任务是否处理成功;
将所述任务处理结果发送至所述容器管理平台。
在一种可能的实现方式中,所述异步处理所述多个任务得到任务处理结果,包括:
对于每个所述任务,异步调用所述任务对应的物理机;
在所述物理机中对所述目标容器进行目标操作,得到所述任务处理结果,所述目标操作包括创建、启动、关闭和释放中的至少一种。
在另一种可能的实现方式中,所述方法还包括:
每隔第一预设时间间隔向所述容器管理平台发送第一状态信息,所述第一状态信息包括所述容器管理平台对应的至少一个所述任务的任务状态和/或机器状态;或者,
接收所述容器管理平台每隔第二预设时间段发送的状态获取请求,根据所述状态获取请求将所述第一状态信息发送至所述容器管理平台。
在另一种可能的实现方式中,所述容器管理平台、所述消息队列和所述代理服务器部署在不同的服务器上。
根据本公开的另一方面,提供了一种任务的异步处理方法,用于用户设备中,所述方法包括:
向容器管理平台发送任务处理请求,所述任务处理请求包括待处理的任务,所述任务处理请求用于指示容器管理平台将待处理的多个任务提交到消息队列中,所述消息队列用于指示代理服务器异步处理所述多个任务,并将任务处理结果发送至所述容器管理平台;接收所述代理服务器发送的所述任务处理结果,所述任务处理结果用于指示所述多个任务是否处理成功。
在一种可能的实现方式中,所述任务处理请求还包括配置信息,所述向容器管理平台发送任务处理请求之前,还包括:
显示任务配置界面,所述任务配置界面包括待配置的自定义配置选项;
当接收到所述任务配置界面上的预设触发信号时,获取所述配置信息,所述配置信息用于指示预设的基础配置选项和已配置的所述自定义配置选项。
在另一种可能的实现方式中,所述向容器管理平台发送任务处理请求之后,还包括:
接收所述容器管理平台返回的第一信息,所述第一信息用于指示所述任务处理请求中的任务保存成功。
在另一种可能的实现方式中,所述方法还包括:
每隔第三预设时间段向所述容器管理平台发送状态查询请求,所述状态查询请求用于指示所述容器管理平台在数据库中查询第二状态信息,所述第二状态信息包括所述用户设备对应的至少一个所述任务的任务状态和/或机器状态;
接收所述容器管理平台返回的所述第二状态信息。
在另一种可能的实现方式中,所述方法还包括:
接收所述容器管理平台每隔第四预设时间段发送的第二状态信息。
根据本公开的一方面,提供了一种任务的异步处理装置,用于容器管理平台中,所述装置包括:
获取模块,用于获取待处理的多个任务,所述任务用于指示对目标容器进行目标操作;
提交模块,用于将所述多个任务提交到消息队列中,所述消息队列用于指示代理服务器异步处理所述多个任务,并将任务处理结果发送至所述容器管理平台;
接收模块,用于接收所述代理服务器发送的所述任务处理结果,所述任务处理结果用于指示所述多个任务是否处理成功。
在一种可能的实现方式中,所述装置还包括:保存模块,用于:
接收用户设备发送的任务处理请求,所述任务处理请求包括待处理的任务;
将所述任务处理请求中的任务的信息保存在数据库中,所述数据库用于存储任务的信息;
所述获取模块,还用于:在所述数据库所存储的任务中,获取待处理的所述多个任务,所述多个任务包括所述任务处理请求中的任务。
在另一种可能的实现方式中,所述任务处理请求还包括身份信息,所述获取模块,还用于:
根据所述身份信息进行身份验证;
当所述身份验证成功时,将所述任务处理请求中的任务的信息保存在所述数据库中。
在另一种可能的实现方式中,所述装置,还包括:返回模块,用于:
当所述任务处理请求中的任务在所述数据库中保存成功时,向所述用户设备返回第一信息,所述第一信息用于指示所述任务处理请求中的任务保存成功。
在另一种可能的实现方式中,所述提交模块,还用于:
将所述多个任务以消息形式,分批次、按顺序地提交到所述消息队列中。
在另一种可能的实现方式中,所述装置,还包括:第一更新模块,用于:
根据所述任务处理结果,在数据库中更新至少一个所述任务的任务状态,所述任务状态包括待处理、进行中、暂停、已完成、失败、停止中的一种。
在另一种可能的实现方式中,所述装置还包括:第二更新模块,用于:
接收所述代理服务器每隔第一预设时间间隔发送的第一状态信息,所述第一状态信息包括所述容器管理平台对应的至少一个所述任务的任务状态和/或机器状态;或者,每隔第二预设时间段从所述代理服务器中获取所述第一状态信息;
根据所述第一状态信息,在数据库中更新至少一个所述任务的任务状态和/或机器状态。
在另一种可能的实现方式中,所述装置还包括:返回模块,用于:
接收用户设备每隔第三预设时间段发送的状态查询请求;
根据所述状态查询请求,在数据库中查询第二状态信息,所述第二状态信息包括所述用户设备对应的至少一个所述任务的任务状态和/或机器状态;
将查询到的所述第二状态信息返回至所述用户设备。
在另一种可能的实现方式中,所述装置还包括:返回模块,用于:
每隔第四预设时间段在所述数据库中获取所述第二状态信息,将获取到的所述第二状态信息返回至所述用户设备。
在另一种可能的实现方式中,所述容器管理平台、所述消息队列和所述代理服务器部署在不同的服务器上。
根据本公开的另一方面,提供了一种任务的异步处理装置,用于代理服务器中,所述装置包括:
获取模块,用于从消息队列中获取多个任务,所述多个任务是容器管理平台获取并提交至所述消息队列中的,所述任务用于指示对目标容器进行目标操作;
处理模块,用于异步处理所述多个任务得到任务处理结果,所述任务处理结果用于指示所述多个任务是否处理成功;
发送模块,用于将所述任务处理结果发送至所述容器管理平台。
在一种可能的实现方式中,所述处理模块,还用于:
对于每个所述任务,异步调用所述任务对应的物理机;
在所述物理机中对所述目标容器进行目标操作,得到所述任务处理结果,所述目标操作包括创建、启动、关闭和释放中的至少一种。
在另一种可能的实现方式中,所述装置还包括:所述发送模块,还用于:
每隔第一预设时间间隔向所述容器管理平台发送第一状态信息,所述第一状态信息包括所述容器管理平台对应的至少一个所述任务的任务状态和/或机器状态;或者,
接收所述容器管理平台每隔第二预设时间段发送的状态获取请求,根据所述状态获取请求将所述第一状态信息发送至所述容器管理平台。
在另一种可能的实现方式中,所述容器管理平台、所述消息队列和所述代理服务器部署在不同的服务器上。
根据本公开的另一方面,提供了一种任务的异步处理装置,用于用户设备中,所述装置包括:
发送模块,用于向容器管理平台发送任务处理请求,所述任务处理请求包括待处理的任务,所述任务处理请求用于指示容器管理平台将待处理的多个任务提交到消息队列中,所述多个任务包括所述任务处理请求中的任务,所述消息队列用于指示代理服务器异步处理所述多个任务,并将任务处理结果发送至所述容器管理平台;接收所述代理服务器发送的所述任务处理结果,所述任务处理结果用于指示所述多个任务是否处理成功。
在一种可能的实现方式中,所述任务处理请求还包括配置信息,所述装置还包括:
显示模块,用于显示任务配置界面,所述任务配置界面包括待配置的自定义配置选项;
获取模块,用于当接收到所述任务配置界面上的预设触发信号时,获取所述配置信息,所述配置信息用于指示预设的基础配置选项和已配置的所述自定义配置选项。
在另一种可能的实现方式中,所述装置还包括:
接收模块,用于接收所述容器管理平台返回的第一信息,所述第一信息用于指示所述任务处理请求中的任务保存成功。
在另一种可能的实现方式中,所述装置还包括:
所述发送模块,还用于每隔第三预设时间段向所述容器管理平台发送状态查询请求,所述状态查询请求用于指示所述容器管理平台在数据库中查询第二状态信息,所述第二状态信息包括所述用户设备对应的至少一个所述任务的任务状态和/或机器状态;
接收模块,用于接收所述容器管理平台返回的所述第二状态信息。
在另一种可能的实现方式中,所述装置还包括:
接收模块,用于接收所述容器管理平台每隔第四预设时间段发送的第二状态信息。
根据本公开的另一方面,提供了一种任务的异步处理装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述第一方面或第一方面的任意一种可能的实现方式所提供的方法,或者实现上述第二方面或第二方面的任意一种可能的实现方式所提供的方法,或者实现上述第三方面或第三方面的任意一种可能的实现方式所提供的方法。
根据本公开的另一方面,提供了一种任务的异步处理系统,所述系统包括:用户设备、容器管理平台和代理服务器;
所述用户设备用于执行上述第三方面或第三方面的任意一种可能的实现方式所提供的方法;
所述容器管理平台用于执行上述第一方面或第一方面的任意一种可能的实现方式所提供的方法;
所述代理服务器用于执行上述第二方面或第二方面的任意一种可能的实现方式所提供的方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述第一方面或第一方面的任意一种可能的实现方式所提供的方法,或者实现上述第二方面或第二方面的任意一种可能的实现方式所提供的方法,或者实现上述第三方面或第三方面的任意一种可能的实现方式所提供的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在计算设备的处理器中运行时,所述计算设备中的处理器执行实现上述第一方面或第一方面的任意一种可能的实现方式所提供的方法,或者实现上述第二方面或第二方面的任意一种可能的实现方式所提供的方法,或者实现上述第三方面或第三方面的任意一种可能的实现方式所提供的方法。
本公开实施例通过获取待处理的多个任务,任务用于指示对目标容器进行目标操作;将多个任务提交到消息队列中,消息队列用于指示代理服务器异步处理多个任务,并将任务处理结果发送至容器管理平台;接收代理服务器发送的任务处理结果,任务处理结果用于指示多个任务是否处理成功;也就是说,通过容器管理平台使用消息队列来实现异步消息传递,即将需要异步处理的多个任务提交到消息队列中,由代理服务器异步处理这多个任务,将任务处理从原有的同步执行-等待模式变为异步的发送-回调模式,使得容器管理平台可以在代理服务器异步处理这多个任务的过程中执行其他任务,而不必等待代理服务器处理完成这多个任务,这样可以显著减少同步等待的时间,提高了容器管理平台的操作效率,有助于提升容器管理平台的整体性能和可维护性。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出了本公开一个示例性实施例提供的异步处理系统的结构示意图。
图2示出了本公开一个示例性实施例提供的任务的异步处理方法的流程图。
图3示出了本公开一个示例性实施例提供的创建实例的流程图。
图4示出了本公开一个示例性实施例提供的代理服务器的功能示意图。
图5示出了本公开另一个示例性实施例提供的任务的异步处理方法的流程图。
图6示出了本公开一个示例性实施例提供的任务的异步处理装置的结构示意图。
图7是根据一示例性实施例示出的一种用于异步处理任务的装置的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
首先,对本公开实施例涉及的一些名词进行介绍。
1、容器管理平台用于管理和编排运行在多个服务器上的容器化应用。容器管理平台可以提供了一系列功能,包括但不限于:(1)、容器编排:定义和管理多个容器化应用的部署,提供了不同的编排引擎,可以自动在集群中的多个计算节点上调度和管理容器的位置和资源。其中,容器化应用是指将应用程序及其依赖项打包在一个轻量级的、可移植的计算环境中,这个环境通常被称为容器。(2)、自动伸缩:可以基于应用程序的负载和资源使用情况,自动调整应用程序的副本数量。它可以根据预定义的规则自动扩展或收缩应用程序的副本,以满足需求并提供更好的性能。(3)、服务发现和负载均衡:内建了服务发现机制,可以将应用程序的网络端点暴露给其他应用程序或用户。它还可以通过负载均衡器自动分配流量到不同的应用程序副本,以实现高可用性和可伸缩性。(4)、存储编排:部分容器管理平台有着存储卷(英文:Volume)的概念,允许应用程序在容器之间共享和持久化数据。它支持多种存储后端,如本地存储、网络存储和云存储服务,并提供了灵活的挂载选项。(5)、配置和密钥管理:以声明性的方式定义应用程序的配置和密钥,以及与应用程序相关的环境变量和机密信息。提供了集中化的配置管理,可以轻松地对应用程序进行配置更改而无需重新部署。(6)、自愈和健康检查:自动恢复故障的能力,它可以监控应用程序的健康状态,并在发现故障时自动重启容器、替换故障节点或重新调度应用程序副本,以确保高可用性和可靠性。(7)、批处理和定时任务:除了长期运行的应用程序,多数容器管理平台还支持批处理作业和定时任务。它可以按计划执行一次性任务,例如数据处理、定期报表生成等。
2、任务:指的是一个具体的工作单元,它可以是一个计算任务、处理数据的任务或者是执行某个特定功能的任务。在不同的上下文中,任务可以有不同的含义,但核心是它代表了要完成的工作量。
3、实例:指的是运行某个应用程序或服务的单个执行环境。在云计算中,一个实例可以是一个虚拟的服务器,它承载着特定的操作系统和应用软件,为用户提供服务。实例是任务执行的载体,一个任务通常会在一个或多个实例上运行。
4、容器:是一种轻量级的、可移植的、自给自足的软件包装形式,它包含了运行应用程序所需的一切,包括代码、运行时、系统工具、库和设置。容器提供了一种将应用程序和服务从其底层基础设施中分离出来的方式,使得应用程序可以一致地在不同的环境中运行。
然后,对本公开涉及的应用场景进行介绍。请参考图1,其示出了本公开一个示例性实施例提供的异步处理系统的结构示意图。本公开实施例提供的方法可应用于该异步处理系统中,该异步处理系统包括用户设备11、容器管理平台12和代理服务器13。
用户设备11可以是终端。终端包括移动终端或者固定终端,比如终端可以是智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(Personal Computer,PC)、智能机器人、车载电脑等终端设备。
容器管理平台12可以部署在单个或多个服务器上。容器管理平台12所在的服务器与代理服务器13为不同的服务器,其中服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务、以及大数据和人工智能平台等基础云计算服务的云服务器。
用户设备11与容器管理平台12可以通过有线或无线通信方式进行直接或间接地连接。容器管理平台12与代理服务器13可以通过有线或无线通信方式进行直接或间接地连接。本公开实施例对此不加限定。
用户设备11用于向容器管理平台发送任务处理请求,任务处理请求包括待处理的任务。
容器管理平台12用于接收用户设备发送的任务处理请求,任务处理请求包括待处理的任务;将任务处理请求中的任务的信息保存在数据库中,数据库用于存储多个任务的信息;在数据库所存储的任务中,获取待处理的多个任务,多个任务包括任务处理请求中的任务;将待处理的多个任务提交到消息队列中,每个任务用于指示在对应的物理机上对目标容器进行目标操作。任务的具体数量可根据需要选择。
其中,容器管理平台、消息队列和代理服务器可以部署在不同的服务器上,也即容器管理平台所在的服务器、消息队列所在的服务器和代理服务器为不同的服务器。或者,容器管理平台、数据库、消息队列、代理服务器和物理机可以部署在不同的服务器上,也即容器管理平台所在的服务器、数据库所在的服务器、消息队列所在的服务器、代理服务器和物理机为不同的服务器。应当理解的是,根据需要,容器管理平台、数据库、消息队列、代理服务器和物理机还可以是其他的部署方式,本公开实施例对此不加以限定。
代理服务器13用于从消息队列中获取多个任务,异步处理多个任务,并将任务处理结果发送至容器管理平台12,任务处理结果用于指示多个任务是否处理成功。
容器管理平台12还用于接收代理服务器13发送的任务处理结果,根据任务处理结果,更新数据库中的至少一个任务的任务状态。
容器管理平台12还用于主动或被动地从代理服务器13中获取第一状态信息,第一状态信息包括容器管理平台12对应的至少一个任务的任务状态;根据第一状态信息,更新数据库中的至少一个任务的任务状态。容器管理平台12还用于主动或被动地将数据库中的第二状态信息发送至用户设备11,第二状态信息包括用户设备11对应的至少一个任务的任务状态。
下面,采用示例性实施例对本公开实施例提供的任务的异步处理方法进行介绍。
请参考图2,其示出了本公开一个示例性实施例提供的任务的异步处理方法的流程图,本实施例以该方法用于图1所示的异步处理系统中来举例说明。该方法包括以下步骤。
步骤201,用户设备向容器管理平台发送任务处理请求,任务处理请求包括待处理的任务。
用户设备可以通过浏览器或命令行等用户接口向容器管理平台发送任务处理请求,该任务处理请求用于指示对目标容器进行目标操作,目标操作可以包括创建、启动、关闭和释放中的至少一种。
可选的,用户设备获取待处理的一个或多个任务、身份信息和配置信息,通过浏览器向容器管理平台发送任务处理请求,该任务处理请求可以包括待处理的一个或多个任务、身份信息和配置信息。其中,任务处理请求中的任务用于指示对目标容器进行目标操作。任务可以是与大语言模型(Large Language Model,LLM)相关的任务,大语言模型是一种人工智能模型,大语言模型用于理解和生成人类语言。
身份信息用于在多个终端中唯一指示该用户设备,示意性的,身份信息为用户设备的设备标识或者令牌(英文:Token)。配置信息包括对物理机进行配置的信息。示意性的,预先设置基础配置选项,配置信息包括预先设置的基础配置选项和用户设备配置的自定义配置选项。
可选的,用户设备显示任务配置界面,任务配置界面包括待配置的自定义配置选项;当接收到任务配置界面上的预设触发信号时,获取配置信息,其中预设触发信号用于指示任务配置界面上的自定义配置选项已配置完成。
由于目前市场上存在的各个容器管理平台的重点往往被放在了系统底层的容器的调度与使用上,对上层的任务分发、调度处理的不够深刻,让使用者有非常陡峭的学习曲线,需要一定的学习和熟悉才能正确地配置、管理和维护。对于新手来说,学习各个容器管理平台的概念、组件和工作原理可能需要一些时间和精力。在这个过程中,目前容器管理平台(如K8s)还高度抽象了许多资源和概念,比如K8s中的容器组(英文:Pod)、服务(英文:Service)、入口(英文:Ingress)等。虽然这种抽象可以提供灵活性和可扩展性,但同时也增加了配置和管理的复杂性,理解和正确使用上述概念需要深入的知识和经验。本公开实施例提供的方法通过预先设置一些通用的基础配置选项,可以屏蔽一些用户不需要关心的配置选项,从而快速和安心地执行任务,从而减少用户的理解成本,提高任务执行效率。同时作为容器管理平台,还需要有复杂的网络配置、部署、持久化等需求,正是由于这些复杂的功能,目前容器管理平台往往有着很高的资源需求,需要非常多个计算节点和存储节点。针对该技术问题,本公开实施例提供的方法通过优化任务的分配、调用和转发机制,预先设置一些通用的基础配置选项,可以减少了对底层节点资源的高需求,例如,为常见的应用场景设定标准的资源配额(如CPU和内存限制)可以避免为每个容器分配过多资源,从而更高效地利用集群资源。并且,预设的基础配置选项可以提供一套标准化的操作流程,用户不需要每次部署时都从头开始配置,只需选择预设的模板或选项即可。这大大减少了操作复杂性,简化了操作流程。并且,使用预设的基础配置选项,可以减少不必要的配置和管理开销,使得整个系统更加轻量级,同时提高可读性和易学习性。
需要说明的是,本公开实施例的任务处理过程中,用户设备与容器管理平台可以是异步处理的,即用户设备在向容器管理平台发送任务处理请求后,不需要等待容器管理平台返回数据,就可以继续执行其他操作。
步骤202,容器管理平台在接收到任务处理请求后进行身份验证。
容器管理平台在接收到任务处理请求后,根据任务处理请求中的身份信息进行身份验证,以确认用户的身份和权限;当身份验证成功时,执行后续的将任务处理请求中的任务的信息保存在数据库中的步骤。
可选的,身份验证的方式可以包括如下步骤:获取任务处理请求的请求头中的令牌,从远程字典服务器(Remote Dictionary Server,Redis)中获取缓存的与令牌对应的用户登录信息,然后根据用户登录信息,验证令牌是否合法且未过期,当令牌合法且未过期时指示身份验证成功,否则指示身份验证失败。应理解,Redis是一个内存数据存储系统,可以用于缓存频繁访问的数据,以提高性能,还可以使用其他类似的缓存系统。可选的,如果需要更详细的确认,比如检查用户的权限或者其他安全设置,容器管理平台可以进一步查询数据库来获取相关信息。数据库是持久化存储系统,可以存储大量的数据,但访问速度相对较慢。一旦身份验证成功,容器管理平台可以执行后续的将任务处理请求中的任务的信息保存在数据库中的步骤。其中数据库和Redis也可以部署在两个不同的服务器上,也可以合并部署在一个服务器上。
步骤203,当身份验证成功时,容器管理平台将任务处理请求中的任务的信息保存在数据库中,数据库用于存储任务的信息。
当身份验证成功时,容器管理平台将任务处理请求中的任务的信息进行持久化处理,即保存在数据库中,任务处理请求中的任务的信息为任务对应的所有信息,可以包括任务标识、任务状态、任务的时间戳和任务对应的配置信息。
可选的,在持久化处理任务处理请求中的任务的信息时,容器管理平台也可以记录该任务处理请求中的任务的信息,比如将任务处理请求中的任务的时间戳进行记录,以便后续可以根据时间戳的顺序将多个任务提交至消息队列,在产生问题时可以通过任务处理请求中的任务的信息(比如时间戳)来进行任务的回溯、追查等。
可选的,数据库所在的服务器与容器管理平台所在服务器为不同的服务器,当身份验证成功时,容器管理平台向数据库写入任务处理请求中的任务的信息,当写入成功也即任务处理请求中的任务在数据库中保存成功时,数据库返回用于指示写入成功的信息,容器管理平台接收到数据库返回的用于指示写入成功的信息,向用户设备返回第一信息。也就是说,当任务处理请求中的任务在数据库中保存成功时,容器管理平台向用户设备返回第一信息。对应的,用户设备接收容器管理平台返回的第一信息,第一信息用于指示任务处理请求中的任务保存成功。
其中,数据库通过提供可靠的数据存储和访问机制,支持多个任务的信息的持久化处理,从而保证数据的持久性和可靠性。数据库用于存储持久化的任务表,任务表包括多个任务的信息,多个任务可以是一个或多个终端发送的多个任务。每个任务的信息为该任务对应的所有信息,包括该任务、该任务的任务状态和该任务对应的配置信息。示意性的,任务状态可以包括待处理、进行中、暂停、已完成、失败、停止中的一种。
步骤204,容器管理平台在数据库中获取待处理的多个任务后,将待处理的多个任务提交到消息队列中,多个任务包括任务处理请求中的任务。
容器管理平台对数据库中持久化的任务表进行轮询查询,获取待处理的多个任务。在获取到待处理的多个任务后,将多个任务以消息形式,分批次、按顺序地提交到消息队列中。
多个任务是数据库中任务状态为待处理的至少一个任务,多个任务可以包括任务处理请求中的任务,也可以包括任务处理请求中的任务和数据库中存储的待处理的其他任务。其中,其他任务与任务处理请求中的任务可以同一用户设备发送的,也可以是不同用户设备发送的。
消息队列是一种异步处理方式,本公开实施例中容器管理平台使用消息队列来实现异步消息传递,消息队列用于在容器管理平台与代理服务器之间传递信息。通过异步处理,可以实现高效的信息传递和解耦。也就是说,本公开实施例的任务处理过程中,容器管理平台与代理服务器是异步处理的,即容器管理平台在将待处理的多个任务提交到消息队列中后,不需要等待代理服务器返回数据,就可以继续执行其他操作。
比如,消息队列可以是兔耳消息队列(英文:RabbitMQ)、阿帕奇·卡夫卡(英文:Apache Kafka)消息队列、火箭消息队列(英文:RocketMQ)。本公开实施例对此不加以限定。
可选的,将多个任务转化为消息,并分批次、按顺序地提交到消息队列中,可以采用多种策略,包括但不限于以下中的一种或其任意组合:1、将需要保持顺序的多个消息放入同一个消息队列中(例如,对于包括多个分区的消息队列,可以放入同一个消息队列的同一分区中),这样可以保证消息的处理顺序,因为同一个队列中的消息会按照先进先出的原则进行处理。2、根据消息之间的依赖关系,将相关联的消息放入同一个消息队列中,来实现顺序处理。3、在分批次提交时,可以将一批任务组合成一个消息提交到一个消息队列中。其中批次的划分方式可根据需要选择。4、为每个任务预先分配一个编号,根据编号按顺序提交到一个或多个消息队列中。5、为每个任务预先分配一个优先级,根据优先级按顺序提交到一个或多个消息队列中。总的来说,在选择适当的策略时,需要考虑任务的特性、系统的复杂性、性能要求以及可靠性等因素。在实际应用中,可能需要结合多种策略来满足不同的业务需求。本公开实施例对此不加以限定。
步骤205,代理服务器从消息队列中获取多个任务。
代理服务器主动或被动地从消息队列中获取多个任务。在一种可能的实现方式中,代理服务器每隔第五时间段或者当满足预设的第一触发条件时,向消息队列发送任务获取请求,消息队列接收到该任务获取请求后,向代理服务器返回多个任务。
在另一种可能的实现方式中,当消息队列接收到容器管理平台提交的待处理的多个任务时,或者消息队列每隔第六预设时间段或者当满足预设的第二触发条件时,向代理服务器分发多个任务。
其中,第五预设时间段、第六预设时间段、第一触发条件、第二触发条件可以是默认设置的,或者是自定义设置的。本公开实施例对此不加以限定。
步骤206,代理服务器异步处理多个任务得到任务处理结果,任务处理结果用于指示多个任务是否处理成功。
对于多个任务中的每个任务,每个任务用于指示在对应的物理机中对目标容器进行目标操作,代理服务器异步调用任务对应的物理机,在物理机中对目标容器进行目标操作,得到任务处理结果。
这里的异步调用,可以理解为,代理服务器对物理机的调用,与容器管理平台是异步的,即不需要容器管理平台提供指令或数据,代理服务器可按自身设置的规则调用任务对应的物理机。
可选的,代理服务器从消息队列中获取多个任务,根据任务类型进行分类,来执行对应的任务。任务类型是根据目标操作的类型确定的,比如目标操作包括创建、启动、关闭和释放中的至少一种,即任务类型包括创建容器、启动容器、关闭容器、释放容器等中的至少一种;然后按照调度顺序对物理机的资源进行调度,比如分配图形处理器(GraphicsProcessing Unit,GPU)、中央处理器(Central Processing Unit,CPU)、分配内存、挂载存储、容器初始化等,之后进入容器启动相应进程,将最后的任务处理结果回调。
可选的,创建容器为根据容器镜像创建一个新的容器。启动容器为运行一个或多个已经被创建的容器。关闭容器为停止正在运行的容器。释放容器为删除不再需要的容器,释放占用的资源。
在一种可能的实现方式中,任务处理结果可以包括多个任务各自对应的处理结果,每个任务对应的处理结果用于指示多个任务是否处理成功,比如每个任务对应的处理结果包括成功信息或失败信息,成功信息用于指示该任务处理成功,失败信息用于指示该任务处理失败,失败信息中可以携带有报错信息。又比如每个任务对应的处理结果包括该任务的任务状态,任务状态包括已完成或失败。当任务状态为已完成时用于指示该任务处理成功,当任务状态为失败时用于指示该任务处理失败。本公开实施例对此不加以限定。
步骤207,代理服务器将任务处理结果发送至容器管理平台。
代理服务器接收物理机返回的任务处理结果,通过回调函数将任务处理结果发送至容器管理平台。对应的,容器管理平台接收代理服务器发送的任务处理结果。
步骤208,容器管理平台根据接收到的任务处理结果,更新数据库中的至少一个任务的任务状态。
容器管理平台接收到代理服务器发送的任务处理结果后,将任务处理结果进行持久化处理,即保存在数据库中。示意性的,任务处理结果可以包括多个任务各自对应的处理结果,容器管理平台可以根据任务处理结果,向数据库发送更新请求,数据库在接收到更新请求时,更新多个任务各自对应的任务状态,在更新成功后,数据库向容器管理平台返回用于指示状态更新成功的信息。
可选的,容器管理平台接收到代理服务器发送的任务处理结果后,可以将任务处理结果发送至用户设备。或者,可以将任务处理结果中任务处理请求中的任务对应的处理结果发送至用户设备。
代理服务器可以通过同步的实时的轮询回调来将任务状态、机器状态中的至少一者返回至容器管理平台。本公开实施例中可以提供两个轮询过程,第一个轮询过程为代理服务器主动或被动地向容器管理平台发送第一状态信息,第一状态信息包括容器管理平台对应的至少一个任务的任务状态和/或机器状态。对应的,容器管理平台主动或被动地从代理服务器中获取第一状态信息;根据第一状态信息,更新数据库中的至少一个任务的任务状态和/或机器状态。第二个轮询过程为容器管理平台主动或被动地将数据库中的第二状态信息发送至用户设备,第二状态信息包括用户设备对应的至少一个任务的任务状态和/或机器状态。对应的,用户设备主动或被动地从容器管理平台中获取第二状态信息。通过这两个轮询过程,用户设备可以获取到用户设备对应的至少一个任务的任务状态和/或机器状态,这便完成了一次完整的实例创建流程。
对于第一个轮询过程,可以包括如下几种可能的实现方式:
在一种可能的实现方式中,代理服务器每隔第一预设时间间隔向容器管理平台发送第一状态信息,第一状态信息包括容器管理平台对应的至少一个任务的任务状态和/或机器状态。对应的,容器管理平台接收代理服务器每隔第一预设时间间隔发送的第一状态信息,根据第一状态信息,在数据库中更新至少一个任务的任务状态和/或机器状态。
可选的,容器管理平台对应的至少一个任务为该容器管理平台提交给消息队列的至少一个任务。容器管理平台接收代理服务器每隔第一预设时间间隔发送的第一状态信息后,将对应的任务状态和/或机器状态进行持久化处理,即在数据库中更新对应的任务状态和/或机器状态。其中,数据库还用于存储多个容器各自对应的机器状态。
可选的,任务对应的机器状态用于指示任务对应的物理机的使用情况,比如磁盘使用情况、CPU使用情况、GPU使用情况、内存使用情况等。
在另一种可能的实现方式中,将轮询的方向倒过来,即容器管理平台每隔第二预设时间段进行轮询,从代理服务器中获取第一状态信息。可选的,代理服务器提供获取第一状态信息的接口,容器管理平台侧通过调用代理服务器所提供的接口从代理服务器中获取第一状态信息,从而进行数据更新。
可选的,容器管理平台每隔第二预设时间段向代理服务器发送状态获取请求,代理服务器接收容器管理平台发送的状态获取请求,根据状态获取请求将第一状态信息发送至容器管理平台,对应的容器管理平台接收代理服务器发送的第一状态信息。
容器管理平台每隔第二预设时间段从代理服务器中获取第一状态信息。示意性的,对于第二个轮询过程,可以包括如下几种可能的实现方式:
在一种可能的实现方式中,用户设备每隔第三预设时间段向容器管理平台发送状态查询请求,对应的容器管理平台接收用户设备每隔第三预设时间段发送的状态查询请求;根据状态查询请求,在数据库中查询第二状态信息,第二状态信息包括用户设备对应的至少一个任务的任务状态和/或机器状态;将查询到的第二状态信息返回至用户设备。用户设备接收容器管理平台返回的第二状态信息。可选的,用户设备对应的至少一个任务为该用户设备发送给该容器管理平台的至少一个任务。
在另一种可能的实现方式中,容器管理平台每隔第四预设时间段在数据库中获取第二状态信息,将获取到的第二状态信息返回至用户设备。用户设备接收容器管理平台每隔第四预设时间段发送的第二状态信息。
其中,上述的预设时间段(第一预设时间段、第二预设时间段、第三预设时间段、第四预设时间段)可以是默认设置的,或者是自定义设置的。本公开实施例对此不加以限定。
在一个示意性的例子中,创建实例的流程图如图3所示,创建实例的流程包括实例的生成、开机、关机、销毁等流程,创建流程还包括了各个流程的流转关系。
用户通过用户设备的浏览器发起创建一个新实例的请求。容器管理平台接收到该请求后进行身份验证,以确认用户的身份和权限。这一步骤通常涉及到验证请求头中的令牌或其他身份验证信息。容器管理平台从Redis中获取缓存的与令牌对应的用户登录信息,根据用户登录信息,验证令牌是否合法且未过期,当令牌合法且未过期时指示身份验证成功,否则指示身份验证失败。如果需要更详细的确认,比如检查用户的权限或者其他安全设置,容器管理平台可以进一步查询数据库来获取用户数据,数据库返回用户数据,根据用户数据判断用户是否具有创建实例的权限。若判断出用户不具有权限,则结束进程。若判断出用户具有权限,则将请求中携带的任务的信息进行持久化处理,即将该任务的所有信息写入数据库,在写入成功后数据库返回写入成功信息。容器管理平台向用户设备返回成功信息。容器管理平台对数据库中持久化的任务表进行轮询查询,获取到多个未执行的任务,这些任务会被分批次并按顺序加入到消息队列中。代理服务器根据从消息队列中获取到的任务来顺序处理。代理服务器根据任务的具体内容,调用对应的物理机,在物理机中创建容器,这一过程可能持续一段时间,所以整体流程都为异步处理,也就是说,用户设备与容器管理平台为异步处理,容器管理平台与代理服务器也为异步处理。在获取到容器创建结果(成功或失败)之后,代理服务器通过回调函数向容器管理平台回调容器创建结果,容器创建结果包括成功信息或失败信息,失败信息中可以携带有相关的报错信息,以便返回给用户和开发人员使用。容器管理平台获取到回调的容器创建结果,将容器创建结果进行持久化处理,即将容器创建结果保存到数据库中,并更新数据库中的至少一个任务的任务状态,在更新成功后数据库返回成功信息。此时会存在两个轮询过程,第一个轮询过程可以包括代理服务器每隔一段时间(比如100毫秒到1秒之间)将已经创建好的实例的任务状态和/或机器状态发送至容器管理平台,第二个轮询过程可以包括用户设备每隔一段时间(比如1秒)从容器管理平台中获取任务状态和/或机器状态,通过这两个轮询过程,用户设备可以获取到任务相关的所有信息,从而完成了一次完整的实例创建流程。
在一个示意性的例子中,代理服务器的功能示意图如图4所示。在任务处理的过程中,当代理服务器从容器管理平台通过消息队列获取到多个任务后,根据任务类型进行分类,来执行对应的任务,比如创建容器、启动容器、关闭容器、释放容器和其他操作等,然后按照调度的顺序对物理机的资源进行调度,比如配置/释放GPU、CPU、内存等,然后启动容器安全外壳守护进程(Secure Shell Daemon,SSHD)进程,将最后的任务处理结果回调。在轮询上报任务状态和/或机器状态的过程中,代理服务器可以从容器管理平台获取物理机的配置信息,根据物理机的配置信息与下游的物理机进行一一映射,获取任务状态和机器状态中的至少一者,比如机器状态用于指示磁盘使用情况,然后将任务状态和机器状态中的至少一者上报至容器管理平台。
请参考图5,其示出了本公开另一个示例性实施例提供的任务的异步处理方法的流程图,本实施例以该方法用于图1所示的容器管理平台中来举例说明。该方法包括以下步骤。
步骤501,获取待处理的多个任务,任务用于指示对目标容器进行目标操作。
步骤502,将多个任务提交到消息队列中,消息队列用于指示代理服务器异步处理多个任务,并将任务处理结果发送至容器管理平台。
步骤503,接收代理服务器发送的任务处理结果,任务处理结果用于指示多个任务是否处理成功。
需要说明的是,本实施例中的步骤的相关细节可参考上述实施例中的相关描述,在此不再赘述。
综上所述,本公开实施例提供了一种任务的异步处理方法,通过容器管理平台使用消息队列来实现异步消息传递,即将需要异步处理的任务以消息形式放入消息队列中,由代理服务器异步处理这些任务,将任务处理从原有的同步执行-等待模式变为异步的发送-回调模式,使得容器管理平台可以在代理服务器异步处理这多个任务的过程中执行其他任务,而不必等待代理服务器处理完成这多个任务,这样可以显著减少同步等待的时间,提高了容器管理平台的操作效率,有助于提升容器管理平台的整体性能和可维护性;并且当任务为多人共用的linux机器内部任务时,基于本公开实施例提供的方法,可以实现对多人共用的linux机器内部任务执行异步调动方案。
以下为本公开实施例的装置实施例,对于装置实施例中未详细阐述的部分,可以参考上述方法实施例中公开的技术细节。
请参考图6,其示出了本公开一个示例性实施例提供的任务的异步处理装置的结构示意图。该任务的异步处理装置可以通过软件、硬件以及两者的组合实现成为容器管理平台的全部或一部分。该装置包括:获取模块61、提交模块62和接收模块63。
获取模块61,用于获取待处理的多个任务,任务用于指示对目标容器进行目标操作;
提交模块62,用于将多个任务提交到消息队列中,消息队列用于指示代理服务器异步处理多个任务,并将任务处理结果发送至容器管理平台;
接收模块63,用于接收代理服务器发送的任务处理结果,任务处理结果用于指示多个任务是否处理成功。
在一种可能的实现方式中,该装置还包括:保存模块,用于:
接收用户设备发送的任务处理请求,任务处理请求包括待处理的任务;
将任务处理请求中的任务的信息保存在数据库中,数据库用于存储任务的信息;
获取模块61,还用于:在数据库所存储的任务中,获取待处理的多个任务,多个任务包括任务处理请求中的任务。
在另一种可能的实现方式中,任务处理请求还包括身份信息,获取模块61,还用于:
根据身份信息进行身份验证;
当身份验证成功时,将任务处理请求中的任务的信息保存在数据库中。
在另一种可能的实现方式中,装置,还包括:返回模块,用于:
当任务处理请求中的任务在数据库中保存成功时,向用户设备返回第一信息,第一信息用于指示任务处理请求中的任务保存成功。
在另一种可能的实现方式中,提交模块62,还用于:
将多个任务以消息形式,分批次、按顺序地提交到消息队列中。
在另一种可能的实现方式中,该装置,还包括:第一更新模块,用于:
根据任务处理结果,在数据库中更新至少一个任务的任务状态,任务状态包括待处理、进行中、暂停、已完成、失败、停止中的一种。
在另一种可能的实现方式中,该装置还包括:第二更新模块,用于:
接收代理服务器每隔第一预设时间间隔发送的第一状态信息,任务状态信息包括容器管理平台对应的至少一个任务的任务状态和/或机器状态;或者,每隔第二预设时间段从代理服务器中获取第一状态信息;
根据第一状态信息,在数据库中更新至少一个任务的任务状态和/或机器状态。
在另一种可能的实现方式中,该装置还包括:返回模块,用于:
接收用户设备每隔第三预设时间段发送的状态查询请求;
根据状态查询请求,在数据库中查询第二状态信息,第二状态信息包括用户设备对应的至少一个任务的任务状态和/或机器状态;
将查询到的第二状态信息返回至用户设备。
在另一种可能的实现方式中,该装置还包括:返回模块,用于:
每隔第四预设时间段在数据库中获取第二状态信息,将获取到的第二状态信息返回至用户设备。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各个功能模块的划分进行举例说明,实际应用中,可以根据实际需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例还提供了一种任务的异步处理装置,用于代理服务器中,该装置包括:
获取模块,用于从消息队列中获取多个任务,多个任务是容器管理平台获取并提交至消息队列中的,任务用于指示对目标容器进行目标操作;
处理模块,用于异步处理多个任务得到任务处理结果,任务处理结果用于指示多个任务是否处理成功;
发送模块,用于将任务处理结果发送至容器管理平台。
在一种可能的实现方式中,处理模块,还用于:
对于每个任务,异步调用任务对应的物理机;
在物理机中对目标容器进行目标操作,得到任务处理结果,目标操作包括创建、启动、关闭和释放中的至少一种。
在另一种可能的实现方式中,该装置还包括:发送模块,还用于:
每隔第一预设时间间隔向容器管理平台发送第一状态信息,第一状态信息包括容器管理平台对应的至少一个任务的任务状态和/或机器状态;或者,
接收容器管理平台每隔第二预设时间段发送的状态获取请求,根据状态获取请求将第一状态信息发送至容器管理平台。
在另一种可能的实现方式中,容器管理平台、消息队列和代理服务器部署在不同的服务器上。
本公开实施例还提供了一种任务的异步处理装置,用于用户设备中,该装置包括:
发送模块,用于向容器管理平台发送任务处理请求,任务处理请求包括待处理的任务,任务处理请求用于指示容器管理平台将待处理的多个任务提交到消息队列中,多个任务包括任务处理请求中的任务,消息队列用于指示代理服务器异步处理多个任务,并将任务处理结果发送至容器管理平台;接收代理服务器发送的任务处理结果,任务处理结果用于指示多个任务是否处理成功。
在一种可能的实现方式中,任务处理请求还包括配置信息,该装置还包括:
显示模块,用于显示任务配置界面,任务配置界面包括待配置的自定义配置选项;
获取模块,用于当接收到任务配置界面上的预设触发信号时,获取配置信息,配置信息用于指示预设的基础配置选项和已配置的自定义配置选项。
在另一种可能的实现方式中,该装置还包括:
接收模块,用于接收容器管理平台返回的第一信息,第一信息用于指示任务处理请求中的任务保存成功。
在另一种可能的实现方式中,该装置还包括:
发送模块,还用于每隔第三预设时间段向容器管理平台发送状态查询请求,状态查询请求用于指示容器管理平台在数据库中查询第二状态信息,第二状态信息包括用户设备对应的至少一个任务的任务状态和/或机器状态;
接收模块,用于接收容器管理平台返回的第二状态信息。
在另一种可能的实现方式中,该装置还包括:
接收模块,用于接收容器管理平台每隔第四预设时间段发送的第二状态信息。
同样需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各个功能模块的划分进行举例说明,实际应用中,可以根据实际需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提供了一种任务的异步处理装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在计算设备的处理器中运行时,所述计算设备中的处理器执行上述方法。
图7是根据一示例性实施例示出的一种用于异步处理任务的装置的框图。例如,该装置可以被提供为终端或服务器。参照图7,装置700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述方法。
装置700还可以包括一个电源组件726被配置为执行装置700的电源管理,一个有线或无线网络接口750被配置为将装置700连接到网络,和一个输入输出(I/O)接口758。装置700可以操作基于存储在存储器732的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器732,上述计算机程序指令可由装置700的处理组件722执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (20)

1.一种任务的异步处理方法,其特征在于,用于容器管理平台中,所述方法包括:
获取待处理的多个任务,所述任务用于指示对目标容器进行目标操作;
将所述多个任务提交到消息队列中,所述消息队列用于指示代理服务器异步处理所述多个任务,并将任务处理结果发送至所述容器管理平台;
接收所述代理服务器发送的所述任务处理结果,所述任务处理结果用于指示所述多个任务是否处理成功。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户设备发送的任务处理请求,所述任务处理请求包括待处理的任务;
将所述任务处理请求中的任务的信息保存在数据库中,所述数据库用于存储任务的信息;
所述获取待处理的多个任务,包括:
在所述数据库所存储的任务中,获取待处理的所述多个任务,所述多个任务包括所述任务处理请求中的任务。
3.根据权利要求2所述的方法,其特征在于,所述任务处理请求还包括身份信息,所述将所述任务处理请求中的任务的信息保存在数据库中,包括:
根据所述身份信息进行身份验证;
当所述身份验证成功时,将所述任务处理请求中的任务的信息保存在所述数据库中。
4.根据权利要求2所述的方法,其特征在于,所述将所述任务处理请求中的任务的信息保存在数据库中之后,还包括:
当所述任务处理请求中的任务在所述数据库中保存成功时,向所述用户设备返回第一信息,所述第一信息用于指示所述任务处理请求中的任务保存成功。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述将所述多个任务提交到消息队列中,包括:
将所述多个任务以消息形式,分批次、按顺序地提交到所述消息队列中。
6.根据权利要求1至4中任意一项所述的方法,其特征在于,所述接收所述代理服务器发送的所述任务处理结果之后,还包括:
根据所述任务处理结果,在数据库中更新至少一个所述任务的任务状态,所述任务状态包括待处理、进行中、暂停、已完成、失败、停止中的一种。
7.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:
接收所述代理服务器每隔第一预设时间间隔发送的第一状态信息,所述第一状态信息包括所述容器管理平台对应的至少一个所述任务的任务状态和/或机器状态;或者,每隔第二预设时间段从所述代理服务器中获取所述第一状态信息;
根据所述第一状态信息,在数据库中更新至少一个所述任务的任务状态和/或机器状态。
8.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:
接收用户设备每隔第三预设时间段发送的状态查询请求;
根据所述状态查询请求,在数据库中查询第二状态信息,所述第二状态信息包括所述用户设备对应的至少一个所述任务的任务状态和/或机器状态;
将查询到的所述第二状态信息返回至所述用户设备。
9.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:
每隔第四预设时间段在数据库中获取第二状态信息,将获取到的所述第二状态信息返回至用户设备。
10.一种任务的异步处理方法,其特征在于,用于代理服务器中,所述方法包括:
从消息队列中获取多个任务,所述多个任务是容器管理平台获取并提交至所述消息队列中的,所述任务用于指示对目标容器进行目标操作;
异步处理所述多个任务得到任务处理结果,所述任务处理结果用于指示所述多个任务是否处理成功;
将所述任务处理结果发送至所述容器管理平台。
11.根据权利要求10所述的方法,其特征在于,所述异步处理所述多个任务得到任务处理结果,包括:
对于每个所述任务,异步调用所述任务对应的物理机;
在所述物理机中对所述目标容器进行目标操作,得到所述任务处理结果,所述目标操作包括创建、启动、关闭和释放中的至少一种。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
每隔第一预设时间间隔向所述容器管理平台发送第一状态信息,所述第一状态信息包括所述容器管理平台对应的至少一个所述任务的任务状态和/或机器状态;或者,
接收所述容器管理平台每隔第二预设时间段发送的状态获取请求,根据所述状态获取请求将所述第一状态信息发送至所述容器管理平台。
13.一种任务的异步处理方法,其特征在于,用于用户设备中,所述方法包括:
向容器管理平台发送任务处理请求,所述任务处理请求包括待处理的任务,所述任务处理请求用于指示容器管理平台将待处理的多个任务提交到消息队列中,所述多个任务包括所述任务处理请求中的任务,所述消息队列用于指示代理服务器异步处理所述多个任务,并将任务处理结果发送至所述容器管理平台;
接收所述代理服务器发送的所述任务处理结果,所述任务处理结果用于指示所述多个任务是否处理成功。
14.根据权利要求13所述的方法,其特征在于,所述任务处理请求还包括配置信息,所述向容器管理平台发送任务处理请求之前,还包括:
显示任务配置界面,所述任务配置界面包括待配置的自定义配置选项;
当接收到所述任务配置界面上的预设触发信号时,获取所述配置信息,所述配置信息用于指示预设的基础配置选项和已配置的所述自定义配置选项。
15.根据权利要求13或14所述的方法,其特征在于,所述向容器管理平台发送任务处理请求之后,还包括:
接收所述容器管理平台返回的第一信息,所述第一信息用于指示所述任务处理请求中的任务保存成功。
16.根据权利要求13或14所述的方法,其特征在于,所述方法还包括:
每隔第三预设时间段向所述容器管理平台发送状态查询请求,所述状态查询请求用于指示所述容器管理平台在数据库中查询第二状态信息,所述第二状态信息包括所述用户设备对应的至少一个所述任务的任务状态和/或机器状态;
接收所述容器管理平台返回的所述第二状态信息。
17.根据权利要求13或14所述的方法,其特征在于,所述方法还包括:
接收所述容器管理平台每隔第四预设时间段发送的第二状态信息。
18.一种任务的异步处理装置,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求1至9中任意一项所述的方法,或者实现权利要求10至12中任意一项所述的方法,或者实现权利要求13至17中任意一项所述的方法。
19.一种任务的异步处理系统,其特征在于,所述系统包括:用户设备、容器管理平台和代理服务器;
所述用户设备用于执行权利要求13至17中任意一项所述的方法;
所述容器管理平台用于执行权利要求1至9中任意一项所述的方法;
所述代理服务器用于执行权利要求10至12中任意一项所述的方法。
20.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至9中任意一项所述的方法,或者实现权利要求10至12中任意一项所述的方法,或者实现权利要求13至17中任意一项所述的方法。
CN202410444738.0A 2024-04-15 2024-04-15 任务的异步处理方法、装置及存储介质 Pending CN118051316A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410444738.0A CN118051316A (zh) 2024-04-15 2024-04-15 任务的异步处理方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410444738.0A CN118051316A (zh) 2024-04-15 2024-04-15 任务的异步处理方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN118051316A true CN118051316A (zh) 2024-05-17

Family

ID=91045181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410444738.0A Pending CN118051316A (zh) 2024-04-15 2024-04-15 任务的异步处理方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN118051316A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118838702A (zh) * 2024-09-23 2024-10-25 浪潮通用软件有限公司 一种轻量级异步任务处理方法、系统及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170331813A1 (en) * 2016-05-11 2017-11-16 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
CN109901918A (zh) * 2017-12-08 2019-06-18 北京京东尚科信息技术有限公司 一种处理超时任务的方法和装置
CN113377507A (zh) * 2021-05-07 2021-09-10 武汉虚咖科技有限公司 任务处理方法、装置、设备以及计算机可读存储介质
CN115309535A (zh) * 2022-10-11 2022-11-08 中诚华隆计算机技术有限公司 一种由调度芯片进行任务迁移的方法及系统
CN116401034A (zh) * 2023-04-06 2023-07-07 金蝶软件(中国)有限公司 任务执行方法、计算机设备及计算机存储介质
CN116433198A (zh) * 2023-06-15 2023-07-14 北京龙腾微时代科技信息有限公司 一种基于云计算的智慧供应链管理平台系统
CN116662035A (zh) * 2023-06-19 2023-08-29 中移(苏州)软件技术有限公司 消息队列事务消息的处理方法和装置
CN117194029A (zh) * 2023-09-12 2023-12-08 腾讯音乐娱乐科技(深圳)有限公司 任务请求处理方法、系统、计算机设备和存储介质
CN117608845A (zh) * 2023-11-28 2024-02-27 招商银行股份有限公司 任务批处理方法、装置、终端设备以及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170331813A1 (en) * 2016-05-11 2017-11-16 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
CN109901918A (zh) * 2017-12-08 2019-06-18 北京京东尚科信息技术有限公司 一种处理超时任务的方法和装置
CN113377507A (zh) * 2021-05-07 2021-09-10 武汉虚咖科技有限公司 任务处理方法、装置、设备以及计算机可读存储介质
CN115309535A (zh) * 2022-10-11 2022-11-08 中诚华隆计算机技术有限公司 一种由调度芯片进行任务迁移的方法及系统
CN116401034A (zh) * 2023-04-06 2023-07-07 金蝶软件(中国)有限公司 任务执行方法、计算机设备及计算机存储介质
CN116433198A (zh) * 2023-06-15 2023-07-14 北京龙腾微时代科技信息有限公司 一种基于云计算的智慧供应链管理平台系统
CN116662035A (zh) * 2023-06-19 2023-08-29 中移(苏州)软件技术有限公司 消息队列事务消息的处理方法和装置
CN117194029A (zh) * 2023-09-12 2023-12-08 腾讯音乐娱乐科技(深圳)有限公司 任务请求处理方法、系统、计算机设备和存储介质
CN117608845A (zh) * 2023-11-28 2024-02-27 招商银行股份有限公司 任务批处理方法、装置、终端设备以及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
汪利虎;张凡石;金京;: "基于"管家模型"的异步消息通知与任务调度机制", 网络安全技术与应用, no. 12, 15 December 2017 (2017-12-15) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118838702A (zh) * 2024-09-23 2024-10-25 浪潮通用软件有限公司 一种轻量级异步任务处理方法、系统及装置

Similar Documents

Publication Publication Date Title
CN112104723B (zh) 一种多集群的数据处理系统及方法
WO2024077885A1 (zh) 容器集群的管理方法、装置、设备及非易失性可读存储介质
EP3944082A1 (en) Extending the kubernetes api in-process
CN111930521A (zh) 用于部署应用的方法、装置、电子设备及可读存储介质
WO2016037479A1 (zh) 虚拟化网络功能vnf优化方法、装置及系统
WO2020177564A1 (zh) Vnf的生命周期管理方法及装置
CN109117252B (zh) 基于容器的任务处理的方法、系统及容器集群管理系统
CN116601606A (zh) 计算平台上的多租户控制平面管理
CN111984270A (zh) 应用部署方法和系统
CN116450355A (zh) 一种多集群模型训练方法、装置、设备及介质
CN116010027A (zh) 管理任务处理集群的方法、执行任务的方法及容器集群
CN112395736A (zh) 一种分布交互仿真系统的并行仿真作业调度方法
CN115686805A (zh) Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置
CN118051316A (zh) 任务的异步处理方法、装置及存储介质
CN116155978A (zh) 多注册中心适配方法、装置、电子设备及存储介质
CN110569104A (zh) 深度学习系统中任务训练的管理方法和计算机存储介质
CN112363820A (zh) 基于异构硬件的统一资源池化容器调度引擎及其调度方法
CN114296953B (zh) 一种多云异构系统及任务处理方法
CN114579250B (zh) 一种构建虚拟集群的方法、装置及存储介质
CN114565502A (zh) Gpu资源管理方法、调度方法、装置、电子设备及存储介质
CN117076096B (zh) 任务流程的执行方法、装置、计算机可读介质及电子设备
CN113377493A (zh) 一种容器云仿真系统及其设计方法
CN117149413A (zh) 一种通用ai算法模型云服务集成部署系统及方法
CN110782040A (zh) 一种pytorch任务训练方法、装置、设备及介质
CN112448977A (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