CN112148348B - 任务处理方法、装置及存储介质 - Google Patents

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

Info

Publication number
CN112148348B
CN112148348B CN201910577574.8A CN201910577574A CN112148348B CN 112148348 B CN112148348 B CN 112148348B CN 201910577574 A CN201910577574 A CN 201910577574A CN 112148348 B CN112148348 B CN 112148348B
Authority
CN
China
Prior art keywords
task
command
container
mirror image
server
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
Application number
CN201910577574.8A
Other languages
English (en)
Other versions
CN112148348A (zh
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910577574.8A priority Critical patent/CN112148348B/zh
Priority to CN202311125854.8A priority patent/CN117215635A/zh
Publication of CN112148348A publication Critical patent/CN112148348A/zh
Application granted granted Critical
Publication of CN112148348B publication Critical patent/CN112148348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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/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
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Abstract

本申请公开了一种任务处理方法及装置,属于深度学习领域。在本申请中,客户端可以将接收到的任务处理命令直接发送至第一服务器上的shell容器,shell容器可以向后端服务模块发送任务处理命令,后端服务模块可以将任务处理命令发送至第二服务器,由第二服务器来处理该任务处理命令,并返回处理结果。后端服务模块可以接收该处理结果,并将该处理结果发送至shell容器。由此可见,在本申请实施例中,可以直接在shell容器内触发任务,这样,当开发人员完成代码编辑、编译等工作之后,在linux环境下可以直接通过shell容器触发任务,而不必再切换至web页面通过点击相应按钮来触发任务,操作更为方便。

Description

任务处理方法、装置及存储介质
技术领域
本申请涉及程序开发测试领域,特别涉及一种任务处理方法、装置及计算机可读存储介质。
背景技术
随着人工智能(Artificial Intelligence,AI)技术的发展,出现了各种用于提供训练和推理服务的训练平台。通常,训练平台可以通过web页面向开发人员提供平台功能。然而,开发人员通常均是在linux环境下进行代码编辑、编译等,在这种情况下,当开发人员在完成代码编辑、编译等操作之后,需要切换到web页面后通过点击相应按钮来触发训练任务,极为不便。
发明内容
本申请实施例提供了一种任务处理方法、装置及存储介质。所述技术方案如下:
一方面,提供了一种任务处理方法,所述方法包括:
发送壳shell容器创建命令,所述shell容器创建命令用于指示在第一服务器上创建shell容器;
显示安全壳协议SSH命令界面,基于在所述SSH命令界面上检测到的登录操作,建立与所述shell容器之间的连接;
接收用户在所述SSH命令界面输入的任务处理命令,将所述任务处理命令发送至所述shell容器,以使所述shell容器基于所述任务处理命令返回处理结果,所述处理结果包括基于所述shell容器的镜像运行的深度学习训练任务的任务信息。
可选地,所述基于在所述SSH命令界面上检测到的登录操作,建立与所述shell容器之间的连接,包括:
接收用户在所述SSH命令界面中输入的登录命令,所述登录命令中携带用户账号信息;
根据所述登录命令向所述第一服务器发送容器登录请求,所述容器登录请求携带用户账号信息;
接收所述shell容器对应的端口的端口信息,所述端口信息是所述第一服务器对所述用户账号信息验证通过后发送的;
通过所述shell容器对应的端口的端口信息,与所述shell容器建立连接。
可选地,所述接收用户在所述SSH命令界面输入的任务处理命令之前,还包括:
接收用户在所述SSH命令界面输入的第一命令,所述第一命令携带第一任务标识,所述第一任务标识用于指示所述第一命令是用于创建shell容器的镜像的任务的命令;
向所述shell容器发送所述第一命令,以使所述shell容器基于所述第一命令创建所述shell容器的镜像。
可选地,所述方法还包括:
接收用户在所述SSH命令界面输入的镜像处理命令,所述镜像处理命令为镜像删除命令、镜像列表获取命令和镜像信息获取命令中的一种;
向所述shell容器发送所述镜像处理命令,以指示所述shell容器基于所述镜像处理命令对所述shell容器的镜像执行对应的操作;
接收所述shell容器发送的镜像处理结果。
可选地,所述任务处理命令为任务创建命令、任务删除命令、任务重启命令、任务列表查看命令和任务信息查看命令中的一种。
可选地,当所述任务处理命令为任务创建命令时,所述任务创建命令用于指示在所述第一服务器上创建第一任务容器,所述第一任务容器用于运行指定脚本,以执行第一任务,所述第一任务为基于所述shell容器的镜像运行的深度学习训练任务。
可选地,所述方法还包括:
在接收到任务出错通知消息之后,接收用户在所述SSH命令界面输入的任务重启命令,所述任务出错通知消息用于提示用户所述第一任务执行出错,所述任务重启命令携带所述第一任务容器的容器标识;
向所述shell容器发送所述任务重启命令,以指示所述shell容器重启所述第一任务容器。
可选地,所述第一任务容器包括为所述第一任务创建的第一进程,所述方法还包括:
在接收到任务出错通知消息之后,接收用户在所述命令界面输入的第二命令,所述第二命令包括所述第一任务的任务标识;
向所述shell容器发送所述第二命令,以指示所述shell容器获取所述第一任务容器的执行信息,并在所述第一任务容器内删除第一进程,重新为所述第一任务创建第二进程,所述第二进程由所述shell容器管理;
接收所述shell容器发送的所述第一任务容器的执行信息。
另一方面,提供了一种任务处理方法,应用于第一服务器,所述第一服务器包括shell容器和后端服务模块,所述方法包括:
所述shell容器接收客户端发送的任务处理命令,向所述后端服务模块发送任务处理命令,所述后端服务模块中存储有所述shell容器的镜像;
所述后端服务模块将所述任务处理命令发送至第二服务器,以使所述第二服务器对所述任务处理命令进行处理,所述第二服务器是指用于提供网页web页面所对应的多种服务的服务器;
所述后端服务模块接收所述第二服务器返回的处理结果,将所述处理结果转发至所述shell容器,所述处理结果包括基于所述shell容器的镜像运行的深度学习训练任务的任务信息;
所述shell向所述客户端发送所述处理结果。
可选地,所述shell容器接收客户端发送的任务处理命令之前,还包括:
所述shell容器接收所述客户端发送的第一命令,则所述第一命令携带第一任务标识,所述第一任务标识用于指示所述第一命令是用于创建shell容器的镜像的任务的命令;
所述shell容器向所述后端服务模块发送镜像创建命令,所述镜像创建命令中携带所述第一任务标识;
所述后端服务模块根据所述第一任务标识确定shell容器标识;
所述后端服务模块调用docker服务,根据所述shell容器标识生成所述shell容器的镜像,存储所述shell容器的镜像。
可选地,所述镜像创建命令还包括镜像名称;
所述存储所述shell容器的镜像之后,所述方法还包括:
所述后端服务模块将所述shell容器的镜像信息发送至所述第二服务器,以使所述第二服务器根据所述shell容器的镜像信息在镜像记录表中添加所述shell容器的镜像的镜像记录,所述shell容器的镜像信息包括所述镜像名称。
可选地,所述方法还包括:
所述shell容器接收所述客户端发送的镜像处理命令,向所述后端服务模块发送所述镜像处理命令,所述镜像处理命令为镜像删除命令、镜像列表获取命令和镜像信息获取命令中的一种;
所述后端服务模块向所述第二服务器发送所述镜像处理命令,以使所述第二服务器根据所述镜像处理命令执行对应的处理操作;
所述后端服务模块接收所述第二服务器返回的镜像处理结果,并将所述镜像处理结果发送至shell容器;
所述shell容器向所述客户端发送所述镜像处理结果。
可选地,所述任务处理命令为任务创建命令、任务删除命令、任务重启命令、任务列表查看命令和任务信息查看命令中的一种。
可选地,所述第一服务器还包括第一任务容器,所述第一任务容器用于执行第一任务,所述第一任务是指基于所述shell容器的镜像运行的深度学习训练任务。
可选地,所述任务处理命令为任务创建命令,所述后端服务模块接收所述第二服务器返回的处理结果之前,还包括:
所述后端服务模块接收任务容器创建命令,所述任务容器创建命令是所述第二服务器在接收到所述任务创建指令后发送的,所述任务创建命令用于指示创建所述第一任务,所述任务容器创建命令用于指示创建所述第一任务容器;
所述后端服务模块根据所述shell容器的镜像创建所述第一任务容器;
在所述第一任务容器创建完成之后,所述后端服务模块向所述第二服务器发送第一通知消息,以使所述第二服务器根据所述第一通知消息将所述第一任务添加至任务列表中,所述第一通知消息用于指示所述第一任务容器创建成功;
相应地,所述后端服务模块接收所述第二服务器返回的处理结果,包括:
所述后端服务模块接收所述第二服务器反馈的任务创建成功消息,所述任务创建成功消息用于指示所述第一任务创建成功。
可选地,所述方法还包括:
所述第一任务容器运行指定脚本,以执行所述第一任务;
当所述第一任务执行出错时,所述第一服务器保留所述第一任务容器;
当所述shell容器接收到所述客户端发送的任务重启命令时,所述shell容器向所述后端服务模块发送所述任务重启命令,所述任务重启命令携带所述第一任务容器的容器标识;
所述后端服务模块通过调用docker命令,根据所述第一任务容器的容器标识重启所述第一任务容器。
可选地,所述方法还包括:
所述第一任务容器运行指定脚本,以执行所述第一任务,所述第一任务容器包括所述第一进程;
当所述第一任务执行出错时,所述shell容器向所述客户端发送任务出错通知消息;
当所述shell容器接收到所述客户端发送的第二命令时,向所述后端服务模块发送第二命令,所述第二命令包括所述第一任务的任务标识;
所述后端服务模块根据所述第一任务的任务标识调用执行接口;
所述shell容器通过所述执行接口获取所述第一任务容器的执行信息,并在所述第一任务容器内为所述第一任务创建第二进程,删除所述第一进程,所述第二进程由所述shell容器管理。
另一方面,提供了一种客户端,该客户端包括:
发送模块,用于发送壳shell容器创建命令,所述shell容器创建命令用于指示在第一服务器上创建shell容器;
连接模块,用于显示安全壳协议SSH命令界面,基于在所述SSH命令界面上检测到的登录操作,建立与所述shell容器之间的连接;
接收模块,用于接收用户在所述SSH命令界面输入的任务处理命令,将所述任务处理命令发送至所述shell容器,以使所述shell容器基于所述任务处理命令返回处理结果,所述处理结果包括基于所述shell容器的镜像运行的深度学习训练任务的任务信息。
可选地,所述连接模块具体用于:
接收用户在所述SSH命令界面中输入的登录命令,所述登录命令中携带用户账号信息;
根据所述登录命令向所述第一服务器发送容器登录请求,所述容器登录请求携带用户账号信息;
接收所述shell容器对应的端口的端口信息,所述端口信息是所述第一服务器对所述用户账号信息验证通过后发送的;
通过所述shell容器对应的端口的端口信息,与所述shell容器建立连接。
可选地,所述接收模块,还用于接收用户在所述SSH命令界面输入的第一命令,所述第一命令携带第一任务标识,所述第一任务标识用于指示所述第一命令是用于创建shell容器的镜像的任务的命令;
所述发送模块,还用于向所述shell容器发送所述第一命令,以使所述shell容器基于所述第一命令创建所述shell容器的镜像。
可选地,所述接收模块,还用于接收用户在所述SSH命令界面输入的镜像处理命令,所述镜像处理命令为镜像删除命令、镜像列表获取命令和镜像信息获取命令中的一种;
所述发送模块,还用于向所述shell容器发送所述镜像处理命令,以指示所述shell容器基于所述镜像处理命令对所述shell容器的镜像执行对应的操作;
所述接收模块,还用于接收所述shell容器发送的镜像处理结果。
可选地,所述任务处理命令为任务创建命令、任务删除命令、任务重启命令、任务列表查看命令和任务信息查看命令中的一种。
可选地,当所述任务处理命令为任务创建命令时,所述任务创建命令用于指示在所述第一服务器上创建第一任务容器,所述第一任务容器用于运行指定脚本,以执行第一任务,所述第一任务为基于所述shell容器的镜像运行的深度学习训练任务。
可选地,所述接收模块,还用于在接收到任务出错通知消息之后,接收用户在所述SSH命令界面输入的任务重启命令,所述任务出错通知消息用于提示用户所述第一任务执行出错,所述任务重启命令携带所述第一任务容器的容器标识;
所述发送模块,还用于向所述shell容器发送所述任务重启命令,以指示所述shell容器重启所述第一任务容器。
可选地,所述第一任务容器包括为所述第一任务创建的第一进程;
所述接收模块,还用于在接收到任务出错通知消息之后,接收用户在所述命令界面输入的第二命令,所述第二命令包括所述第一任务的任务标识;
所述发送模块,还用于向所述shell容器发送所述第二命令,以指示所述shell容器获取所述第一任务容器的执行信息,并在所述第一任务容器内删除第一进程,重新为所述第一任务创建第二进程,所述第二进程由所述shell容器管理;
所述接收模块,还用于接收所述shell容器发送的所述第一任务容器的执行信息。
另一方面,提供了一种服务器,该服务器包括:shell容器和后端服务模块;
shell容器,用于接收客户端发送的任务处理命令,向后端服务模块发送任务处理命令,后端服务模块中存储有shell容器的镜像;
后端服务模块,用于将任务处理命令发送至第二服务器,以使第二服务器对任务处理命令进行处理,第二服务器是指用于提供网页web页面所对应的多种服务的服务器;
后端服务模块,还用于接收第二服务器返回的处理结果,将处理结果转发至shell容器,所述处理结果包括基于所述shell容器的镜像运行的深度学习训练任务的任务信息;
所述shell容器还用于向所述客户端发送所述处理结果。
可选地,所述shell容器,还用于接收所述客户端发送的第一命令,所述第一命令携带第一任务标识,所述第一任务标识用于指示所述第一命令是用于创建shell容器的镜像的任务的命令;向后端服务模块发送镜像创建命令,镜像创建命令中携带第一任务标识;
后端服务模块用于根据第一任务标识确定shell容器标识;调用docker服务,根据shell容器标识生成shell容器的镜像,存储shell容器的镜像。
可选地,镜像创建命令还包括镜像名称;
后端服务模块还用于将shell容器的镜像信息发送至第二服务器,以使第二服务器根据shell容器的镜像信息在镜像记录表中添加shell容器的镜像的镜像记录,shell容器的镜像信息包括镜像名称。
可选地,shell容器还用于接收所述客户端发送的镜像处理命令,向后端服务模块发送镜像处理命令,镜像处理命令为镜像删除命令、镜像列表获取命令和镜像信息获取命令中的一种;
后端服务模块还用于向第二服务器发送镜像处理命令,以使第二服务器根据镜像处理命令执行对应的处理操作;接收第二服务器返回的镜像处理结果,并将镜像处理结果发送至shell容器;
所述shell容器还用于向所述客户端发送所述镜像处理结果。
可选地,任务处理命令为任务创建命令、任务删除命令、任务重启命令、任务列表查看命令和任务信息查看命令中的一种。
可选地,所述服务器还包括第一任务容器,所述第一任务容器用于执行第一任务,所述第一任务是指基于所述shell容器的镜像运行的深度学习训练任务。
可选地,任务处理命令为任务创建命令;
所述后端服务模块还用于接收任务容器创建命令,所述任务容器创建命令是所述第二服务器在接收到所述任务创建指令后发送的,所述任务创建命令用于指示创建所述第一任务,所述任务容器创建命令用于指示创建所述第一任务容器;根据所述shell容器的镜像创建所述第一任务容器;在所述第一任务容器创建完成之后,向所述第二服务器发送第一通知消息,以使所述第二服务器根据所述第一通知消息将所述第一任务添加至任务列表中,所述第一通知消息用于指示所述第一任务容器创建成功;
相应地,所述后端服务模块还用于接收所述第二服务器反馈的任务创建成功消息,所述任务创建成功消息用于指示所述第一任务创建成功。
可选地,所述第一任务容器用于运行指定脚本,以执行所述第一任务;
当所述第一任务执行出错时,所述服务器保留所述第一任务容器;
当所述shell容器接收到所述客户端发送的任务重启命令时,所述shell容器还用于向所述后端服务模块发送所述任务重启命令,所述任务重启命令携带所述第一任务容器的容器标识;
所述后端服务模块还用于通过调用docker命令,根据所述第一任务容器的容器标识重启所述第一任务容器。
可选地,所述第一任务容器用于运行指定脚本,以执行所述第一任务,所述第一任务容器包括所述第一进程;
当所述第一任务执行出错时,所述shell容器还用于向所述客户端发送任务出错通知消息;当所述shell容器接收到所述客户端发送的第二命令时,向所述后端服务模块发送第二命令,所述第二命令包括所述第一任务的任务标识;
所述后端服务模块还用于根据所述第一任务的任务标识调用执行接口;
所述shell容器还用于通过所述执行接口获取所述第一任务容器的执行信息,并在所述第一任务容器内为所述第一任务创建第二进程,删除所述第一进程,所述第二进程由所述shell容器管理。
另一方面,提供了一种客户端,所述客户端包括处理器、通信接口、存储器和通信总线;
其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器用于存放计算机程序;
所述处理器用于执行所述存储器上所存放的程序,以实现前述提供任务处理方法。
另一方面,提供了一种服务器,所述服务器包括处理器、通信接口、存储器和通信总线;
其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器用于存放计算机程序;
所述处理器用于执行所述存储器上所存放的程序,以实现前述提供任务处理方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述提供的任务处理方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,客户端可以将接收到的任务处理命令直接发送至第一服务器上的shell容器,shell容器可以向后端服务模块发送任务处理命令,后端服务模块可以将任务处理命令发送至第二服务器,由第二服务器来处理该任务处理命令,并返回处理结果。后端服务模块可以接收该处理结果,并将该处理结果发送至shell容器。由此可见,在本申请实施例中,可以直接在shell容器内触发任务,这样,当开发人员完成代码编辑、编译等工作之后,在linux环境下可以直接通过shell容器触发任务,而不必再切换至web页面通过点击相应按钮来触发任务,操作更为方便。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种训练平台的系统架构图;
图2是本申请实施例提供的一种创建shell容器和shell容器的镜像的方法流程图;
图3是本申请实施例提供的一种任务处理方法流程图;
图4是本申请实施例提供的一种镜像处理方法的流程图;
图5是本申请实施例提供的一种任务处理装置的结构示意图;
图6是本申请实施例提供的一种任务处理装置的结构示意图;
图7是本申请实施例提供的一种服务器的设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例涉及的应用场景予以介绍。
目前,深度学习模型被广泛的应用于各行各业中。例如,在智能交通领域,可以通过深度学习模型对监控设备采集到的车辆图像进行识别分类。再例如,在安保领域,可以通过深度学习模型对图像采集设备采集到的人脸图像进行识别等等。
在利用深度学习模型进行图像识别之前,首先需要对深度学习模型进行训练。基于此,当前出现了各种用于深度学习训练计算的训练平台。通常,开发人员可以在训练平台的linux环境下进行代码编辑、编译和测试,在代码编辑、编译和测试等操作完成之后,开发人员通常需要使用该训练平台的平台功能,来进行模型的训练和推理。本申请实施例提供的任务处理方法即可以用于在开发人员完成代码编辑、编译和测试之后,在linux环境下触发训练任务,以实现模型的训练和推理。
接下来对本申请实施例提供的任务处理方法所涉及的系统架构进行介绍。
图1是本申请实施例提供的一种训练平台的系统架构图。如图1所示,该系统包括web客户端101、web服务器102、主服务器103和多个从服务器104。
其中,web客户端101可以是指通过web页面向开发人员提供平台功能的终端。web客户端101上可以显示有web页面。
web服务器102是指运行有web服务的服务器,可以用于进行业务处理。例如,在本申请实施例中,web服务器102可以接收从服务器104的任务处理请求,并对任务处理请求进行处理。需要说明的是,web服务器102中可以存储有在该系统内创建的所有镜像的镜像信息。另外,web服务器102中还可以存储有该系统内当前正在执行的任务的任务信息。
主服务器103上可以部署有Kubernetes的master组件。Kubernetes是一种容器编排框架,可以将应用程序以容器方式部署在不同的服务器中,并且,可以将容器以Pod为单位编排管理。主服务器103可以通过该Kubernetes的master组件将Pod分配到从服务器104上,以实现多个从服务器104的资源调度。
多个从服务器104上可以运行有Pod,并且多个从服务器104上均可以部署有后端服务模块。其中,Pod可以包含有一个或多个容器,每个容器中运行有一个应用程序。后端服务模块可以用于实现各种功能调用。
需要说明的是,上述每个服务器可以指一台服务器。在这种情况下,每台服务器上可以运行有一种服务,也可以运行有多种服务。或者,每个服务器可以是指一个服务器集群。在这种情况下,该服务器集群可以共同实现一种服务,也可以共同实现多种服务。本申请实施例对此不做限定。
在本申请实施例中,在通过shell容器的镜像运行深度学习训练任务以及通过shell容器对任务处理命令进行处理之前,首先可以创建shell容器以及shell容器的镜像。接下来将结合图2对创建shell容器和shell容器的镜像的方法进行介绍。如图2所示,该方法可以应用于图1所示的系统架构中,该方法包括以下步骤:
步骤201:客户端向第一服务器发送shell容器创建命令,该shell容器创建命令用于指示在第一服务器上创建shell容器。
用户可以在客户端显示的web页面上执行指定操作,以触发shell容器创建命令。客户端在检测到该shell容器创建命令之后,可以将该shell容器创建命令通过第二服务器发送至第三服务器。其中,第二服务器是指该运行有web服务的web服务器,也即,用于提供web页面对应的多种服务的服务器。第三服务器可以指部署有Kubernetes的master组件的主服务器。第三服务器在接收到客户端发送的shell容器创建命令之后,可以根据该shell容器创建命令为待创建的shell容器分配对应的从服务器,也即第一服务器。之后,第三服务器可以将shell容器创建指令发送至第一服务器。其中,第一服务器上部署有后端服务模块。
步骤202:第一服务器根据shell容器创建命令创建shell容器,并向客户端返回创建成功消息。
第一服务器在接收到shell容器创建命令之后,创建shell容器。
需要说明的是,shell容器是指启动了SSH(Secure Shell,安全壳协议)服务的容器,也即,用户可以通过SSH工具登录该容器。
在创建shell容器之后,第一服务器可以向客户端返回用于指示shell容器创建成功的创建成功消息。
步骤203:当接收到创建成功消息之后,客户端显示SSH命令界面,基于在SSH命令界面上检测到的登录操作,建立与shell容器之间的连接。
当接收到shell容器创建成功的通知消息之后,客户端可以显示SSH命令界面。其中,SSH命令界面即为SSH工具的命令界面。之后,若用户想要使用该shell容器,则可以在该SSH命令界面上执行登录操作。当客户端检测到用户的登录操作时,可以向第一服务器发送容器登录请求,该容器登录请求中携带用户账号信息。
第一服务器上可以部署有相应的SSH服务模块,该SSH服务模块可以根据该容器登录请求中携带的用户账号信息对客户端进行认证,在认证通过之后,该SSH服务模块可以将shell容器对应的端口的端口信息发送至客户端的SSH工具,SSH工具可以根据该端口信息建立客户端与shell容器之间连接。
当客户端与shell容器之间的连接建立之后,即相当于登录到了shell容器。由于shell容器是linux环境下创建的容器,因此,在登录到shell容器之后,用户可以通过在SSH命令界面中输入代码编辑、编译等命令,实现在shell容器内的代码编辑、编译和测试等。在完成代码编辑、编译和测试等操作之后,用户可以SSH命令界面上输入命令行工具启动命令shell容器在接收到该命令行工具启动命令之后,如果是第一次接收到该命令,则该shell容器可以显示用于提示用户输入用户账号信息的提示信息,用户可以输入用于登录shell容器的用户账号信息。shell容器在接收到该用户账号信息之后,可以将该用户账号信息发送至后端服务模块,后端服务模块可以对该用户账号信息进行验证,并在验证通过之后,返回该用户账号信息对应的令牌(token)值。之后,shell容器可以启动该命令行工具。其中,该令牌值可以用于区分不同用户。也即,不同的用户对应有不同的令牌值。需要说明的是,上述的命令行工具可以是指shell容器中安装的用于实现后续步骤以及后续实施例中的方法的工具。
步骤204:客户端接收用户在SSH命令界面输入的第一命令,并向shell容器发送该第一命令,第一命令携带第一任务标识。
在建立与shell容器之间的连接,并启动了shell容器中的命令行工具之后,用户在可以SSH命令界面中输入第一命令。该第一命令携带有第一任务标识,该第一任务标识用于指示第一命令是用于创建shell容器的镜像的任务的命令。
在接收到第一命令之后,客户端可以通过与shell容器之间的连接,将第一命令发送至shell容器。
需要说明的是,该第一命令中还可以携带有用户设置的shell容器的镜像的镜像名称。
步骤205:当shell容器接收到第一命令时,向后端服务模块发送镜像创建命令,镜像创建命令中携带第一任务标识。
shell容器在接收到该第一命令之后,可以获取第一命令中包括的第一任务标识,并根据该第一任务标识生成镜像创建命令。此时,该镜像创建命令中携带有该第一任务标识。
需要说明的是,在一种可能的实现方式中,shell容器在获取到第一任务标识之后,还可以获取前述的令牌值,并将该令牌值携带在镜像创建命令中。
进一步地,当第一命令中还包含有用户设置的镜像名称时,该镜像创建命令中还可以包括该镜像名称。示例性地,该镜像创建命令可以为commit命令。
在生成镜像创建命令之后,shell容器可以将该镜像创建命令发送至后端服务模块。
步骤206:后端服务模块根据第一任务标识确定shell容器标识。
后端服务模块在接收到镜像创建命令之后,首先可以根据其携带的第一任务标识生成用于标识shell容器的shell容器标识。
步骤207:后端服务模块调用docker服务,根据shell容器标识生成shell容器的镜像,存储shell容器的镜像。
在生成shell容器标识之后,后端服务模块可以调用docker服务,根据shell容器标识生成shell容器的镜像。
需要说明的是,第一服务器上可以部署有docker服务模块,后端服务模块可以调用该docker服务模块,并将shell容器标识和镜像名称传递至docker服务模块。docker服务模块在接收到该shell容器标识和镜像名称之后,可以根据shell容器标识确定shell容器,进而根据shell容器生成shell容器的镜像,与此同时,docker服务模块可以按照前述的接收到的镜像名称对shell容器的镜像进行命名。
在生成shell容器的镜像之后,后端服务模块可以向docker服务模块发送存储命令,docker服务模块可以根据该存储命令将shell容器的镜像存储至镜像仓库。
步骤208:后端服务模块将shell容器的镜像信息发送至第二服务器,shell容器的镜像信息包括镜像名称。
在将shell容器的镜像存储至镜像仓库之后,后端服务模块可以调用web服务接口,进而通过该web服务接口将shell容器的镜像信息发送至第二服务器。其中,shell容器的镜像信息包括shell容器的镜像的镜像名称、创建时间、镜像大小以及镜像描述等。本申请实施例对此不做具体限定。需要说明的是,镜像描述里可以包含有镜像名称,在这种情况下,该镜像信息中可以不必再单独包括镜像名称。或者,镜像描述里也可以不包含镜像名称,而是仅仅包含有对该shell容器的镜像的内容描述信息。
步骤209:第二服务器根据shell容器的镜像信息在镜像记录表中添加shell容器的镜像的镜像记录,并返回添加成功通知消息至后端服务模块。
第二服务器在接收到该shell容器的镜像信息之后,可以将shell容器的镜像名称作为一条镜像记录对应存储在镜像记录表中。或者,当镜像信息还包括其他信息时,第二服务器可以将这些信息对应存储在镜像记录表中,也即,将该shell容器的镜像信息作为一条镜像记录。
之后,第二服务器可以向后端服务模块返回用于指示镜像记录添加成功的通知消息,以通知后端服务模块。
步骤210:后端服务模块将添加成功通知消息发送至shell容器。
步骤211:shell容器根据添加成功通知消息,向客户端返回镜像创建成功通知消息。
Shell容器在接收到后端服务模块返回的添加成功通知消息之后,可以确定shell容器的镜像已经创建成功,此时,shell容器可以通过与客户端之间的连接返回镜像创建成功通知消息至客户端,以提示用户shell容器的镜像创建成功。
在创建shell容器的镜像之后,接下来,用户就可以在SSH命令界面上输入任务处理命令,并通过图3所示实施例中的任务处理方法来对该任务命令进行处理。
图3是本申请实施例提供的一种任务处理方法的流程图。该方法可以应用于图1所示的系统架构,如图3所示,该方法可以包括以下步骤:
步骤301:客户端接收用户在SSH命令界面输入的任务处理命令,将任务处理命令发送至shell容器。
在创建shell容器的镜像之后,接下来,用户就可以在SSH命令界面上输入任务处理命令。该任务处理命令可以用于触发相应地任务。其中,该任务处理命令可以为任务创建命令、任务删除命令、任务重启命令、任务列表查看命令和任务信息查看命令中的一种。客户端在接收到该任务处理命令之后,可以将该任务处理命令发送至shell容器。
步骤302:shell容器向后端服务模块发送任务处理命令。
Shell容器在接收到该任务处理命令之后,可以将该任务处理命令转发至后端服务模块。
步骤303:后端服务模块将任务处理命令发送至第二服务器,以使第二服务器对任务处理命令进行处理。
后端服务模块在接收到shell容器发送的任务处理命令之后,可以调用web服务接口将该任务处理命令发送至第二服务器,以使第二服务器根据该shell容器的镜像的镜像记录对该任务处理命令进行处理。
其中,当该任务处理命令为任务创建命令时,后端服务模块可以接收第二服务器根据任务创建命令发送的任务容器创建命令,任务创建命令用于指示创建第一任务,任务容器创建命令用于指示创建第一任务容器;后端服务模块根据shell容器的镜像创建第一任务容器;在第一任务容器创建完成之后,后端服务模块向第二服务器发送第一通知消息,以使第二服务器根据第一通知消息将第一任务添加至任务列表中,第一通知消息用于指示第一任务容器创建成功。
示例性地,后端服务模块在接收到任务创建命令之后,可以调用web服务接口将该任务创建命令转发至第二服务器。其中,该任务创建命令中可以携带第二任务标识,第二任务标识用于标识第一任务。第二服务器在接收到该任务创建命令之后,可以生成任务容器创建命令,并将该任务容器创建命令发送至第三服务器。其中,该任务容器创建命令用于指示创建第一任务容器。该第一任务容器用于执行第一任务。第一任务是指基于shell容器的镜像运行的深度学习训练任务。
第三服务器可以根据各个从服务器的负载均衡,为该任务容器创建命令所要创建的第一任务容器分配对应的服务器。在本申请实施例中,以分配到的服务器仍为第一服务器为例进行说明。第三服务器可以将该任务容器创建命令发送至第一服务器,第一服务器在接收到该任务容器创建命令之后,可以根据指定脚本创建第一任务容器。其中,第一任务容器中运行有该指定脚本,且该指定脚本是指依赖于shell容器的镜像来实现深度学习训练任务的脚本。也即,第一任务容器在执行第一任务时,需要使用到shell容器的镜像。
在第一任务容器创建成功之后,后端服务模块可以向第二服务器发送第一通知消息,该第一通知消息用于指示第一任务容器创建成功。可选地,该第一通知消息中可以携带有第二任务标识。第二服务器在接收到该第一通知消息之后,可以将第二任务标识添加至任务列表中。可选地,第一通知消息中还可以携带有其他有关第一任务的详细任务信息。在这种情况下,第二服务器还可以将第二任务标识和第一任务的详细任务信息对应存储。
第二服务器在将第二任务标识以及第一任务的任务信息存储之后,第二服务器可以生成任务创建成功消息,并将该任务创建成功消息发送至后端服务模块。至此,第一任务创建完成。
可选地,当任务处理命令为任务删除命令时,后端服务模块可以调用web后端服务接口将该任务删除命令转发至第二服务器。其中,该任务删除命令中可以携带有待删除的任务的标识。第二服务器在接收到该任务删除命令之后,可以从任务列表中删除该任务删除命令所携带的任务标识,并删除存储的该任务标识对应的任务信息。与此同时,后台服务模块还可以根据任务删除命令中携带的任务标识,生成对应的任务容器标识,并调用docker服务,根据该任务容器标识销毁对应的任务容器。
可选地,当任务处理命令为任务信息查看命令时,后端服务模块可以调用web后端服务接口将该任务信息查看命令转发至第二服务器。其中,该任务信息查看命令中可以携带有任务标识。第二服务器在接收到该任务信息查看命令之后,可以根据携带的任务标识获取该任务标识对应的任务信息,并将该任务信息返回至后端服务模块。
可选地,当该任务处理命令为任务停止命令时,后端服务模块可以根据该任务停止命令中携带的任务标识,确定容器标识,之后,后端服务模块可以调用docker服务,暂停该容器标识所标识的容器内的进程。与此同时,该后端服务模块还可以将该任务停止命令转发至第二服务器,第二服务器可以对任务停止命令中携带的任务标识对应的任务信息进行更新,并返回更新成功消息至后端服务模块。
可选地,当该任务处理命令为任务重启命令时,可以参考任务停止命令的相关实现方式来进行处理,本申请实施例对此不做限定。
需要说明的是,如前所述,当第一服务器上包括第一任务容器时,第一任务容器可以通过运行指定脚本来执行第一任务。在第一任务容器执行第一任务的过程中,如果第一任务执行出错,则第一服务器可以保留第一任务容器,并向客户端返回任务出错通知消息。客户端在接收到该任务出错通知消息之后,显示该通知消息以提示用户。此时,用户可以通过SSH命令界面对指定脚本进行修改。或者,也可以通过其他方式对指定脚本进行修改。在对指定脚本修改完成之后,用户可以在SSH命令界面中输入任务重启命令,客户端可以接收该任务重启命令,并将该任务重启命令发送至shell容器。其中,该任务容器命令携带第一任务容器的容器标识。当shell容器接收到任务重启命令时,可以向后端服务模块转发该任务重启命令。后端服务模块通过调用docker命令,根据第一任务容器的容器标识重启第一任务容器。
在相关技术中,在用户通过web页面来触发任务的情况下,当任务执行出错,将会向客户端发送错误消息。此时,如果用户需要修改指定脚本,则需要切换到linux环境下对指定脚本进行修改,这样,该任务对应的任务容器将会被销毁。后续,当开发人员修改完成之后,需要重新切换到web页面,重新触发任务。在重新触发任务之后,该客户端需要等待第三服务器重新为该任务分配资源以创建任务容器。在集群资源紧张的情况下,重新分配资源需要等待较长时间。
而在本申请实施例中,当第一任务容器执行第一任务出错之后,第一服务器可以保留该第一任务容器。此时,用户可以对指定脚本进行修改,在修改完成之后,用户可以在SSH命令界面中输入任务重启指令,shell容器可以将该任务重启指令发送至后端服务模块。后端服务模块在接收到该任务重启指令之后,可以根据任务重启指令中的第一任务容器的容器标识,调用docker服务重新启动第一任务容器,这样,第一任务容器即可以继续运行修改后的指定脚本以执行第一任务,而无需排队等待重新分配资源重建任务容器,提高了任务执行效率。
可选地,在一些可能的示例中,在第一任务容器执行第一任务的过程中,如果第一任务执行出错,客户端在接收到任务出错通知消息之后,用户在对指定脚本修改完成后,还可以在SSH命令界面中输入第二命令,该第二命令中携带第一任务的任务标识。客户端可以将该第二命令发送至shell容器。shell容器可以向后端服务模块转发第二命令。后端服务模块在接收到第二命令之后,可以根据第二命令中的第一任务的任务标识调用执行接口;之后,shell容器通过执行接口获取第一任务容器的执行信息,并在第一任务容器内为第一任务创建第二进程,删除第一进程。其中,第一进程是第一任务容器中包括的用于执行第一任务的进程。第二进程是在删除第一进程之后,重新为第一任务创建的进程,且该第二进程由shell容器管理。在获取到第一任务容器的执行信息之后,shell容器可以将该第一任务容器的执行信息发送至客户端。客户端可以显示第一任务容器的执行信息,以便用户根据第一任务容器的执行信息进行问题定位。需要说明的是,第一任务容器的执行信息可以包括第一任务容器内的各项运行参数以及运行日志等。
示例性地,用户可以在SSH命令界面中输入第二命令,该第二命令可以是exec命令。shell容器在接收到第二命令之后,将该第二命令转发至后端服务模块。其中,第二命令中除了可以包括第一任务的任务标识之外,还可以包括用户账号信息。后端服务模块在接收到该第二命令之后,可以根据该任务标识生成对应的容器标识,并通过该容器标识调用执行接口,也即,exec接口。shell容器可以通过该执行接口,根据该容器标识,获取第一任务容器内的执行信息,并转发至客户端以进行显示。开发人员可以对第一任务容器内的执行信息进行查看,以此来定位排查问题,并进行调试。由于在任务执行出错的情况下,如果要获取执行信息,需要结束第一进程。然而,通常,第一任务容器的生命周期与第一进程是一致的,当第一进程结束时,第一任务周期的生命周期也将结束。基于此,在获取执行信息的同时,shell容器可以通过该执行接口在第一任务容器内为第一任务创建第二进程,并删除第一进程。此时,该第二进程由shell容器内的命令行工具来管理。由于第二进程由shell容器内的命令行工具来管理的,因此,第二进程的生命周期将与shell容器内的命令行工具的生命周期一致,而第二进程又是在第一任务容器内为第一任务创建的,因此,第一任务容器的生命周期将与第二进程保持一致。这样,通过创建第二进程,shell容器可以控制第一任务容器不被销毁。在问题排查完成之后,shell容器可以开启第二进程,从而使得第一任务容器继续执行第一任务。
由此可见,通过上述方法进行问题排查,相当于是用户可以直接进入到任务容器内部进行执行信息的查看,有利于用户快速方便的定位问题以进行调试。并且,由于在问题排查调试结束之后,第一任务容器可以继续通过第二进程来执行第一任务,因此,无需排队,在资源紧张的情况下,提高了调试效率。
需要说明的是,在前述进行任务处理的过程中,用户可以在shell容器内编写一个脚本,该脚本中可以包含有任务创建命令和任务删除命令。shell容器可以通过执行该脚本的命令来实现任务的创建和删除,并且,该脚本中还可以包括对指定脚本中的参数进行调整的指令,这样,在根据该脚本中的任务创建指令创建任务之后,可以执行相应任务,并获取任务处理结果,当任务处理结果不符合指定条件时,可以通过任务删除命令对任务进行删除,并对第一任务对应的指定脚本中的参数进行自动调整。在调整之后,再次根据任务创建命令创建任务。由此可见,通过该种方法可以实现自动为训练任务调参。
步骤304:后端服务模块接收第二服务器返回的处理结果,将处理结果转发至shell容器。
需要说明的是,由前述步骤302中介绍的内容可知,根据任务处理命令的不同,第二服务器可以向后端服务模块返回不同的处理结果。
示例性地,当任务处理命令为任务创建命令时,第二服务器向后端服务模块返回的处理结果将为任务创建成功消息。当任务处理命令为任务信息查看命令时,第二服务器向后端服务模块返回的处理结果将为获取的任务信息。本申请实施例在此不对处理结果进行赘述。
当后端服务模块接收到处理结果之后,可以将该处理结果发送至shell容器。
步骤305:shell容器将该处理结果转发至客户端。
步骤306:客户端显示该处理结果。
客户端在接收到shell容器发送的处理结果之后,可以将该处理结果显示在SSH命令界面中,以通知用户。
在本申请实施例中,客户端可以将接收到的任务处理命令直接发送至第一服务器上的shell容器,shell容器可以将任务处理命令转发至后端服务模块,后端服务模块可以将任务处理命令发送至第二服务器,由第二服务器来处理该任务处理命令,并返回处理结果。后端服务模块可以接收该处理结果,并将该处理结果发送至shell容器,进而转发至客户端进行显示。由此可见,在本申请实施例中,可以直接在shell容器内触发任务,这样,当开发人员完成代码编辑、编译等工作之后,在linux环境下可以直接通过shell容器触发任务,而不必再切换至web页面通过点击相应按钮来触发任务,操作更为方便。
另外,在相关技术中,开发人员在集群外部创建的镜像往往缺少平台运行需要的配置。缺少这些配置,镜像无法在平台正常使用,同时用户自己制作的镜像可能存在一些安全风险。而在本申请实施例中,开发人员可以在创建shell容器后,可以在shell容器内安装各种应用程序,之后,创建shell容器的镜像,得到符合用户需求的私有镜像,减少了安全风险。
在图2所示的实施例中,在创建shell容器的镜像之后,后端服务模块可以调用docker服务将shell容器的镜像存入镜像仓库,第二服务器可以根据shell容器的镜像信息在镜像记录表中添加shell容器的镜像的镜像记录。在此基础上,还可以通过图4所示的镜像处理方法对shell容器的镜像进行处理。
图4提供了一种镜像处理方法的流程图。如图4所示,该方法包括以下步骤:
步骤401:客户端接收用户在SSH命令界面输入的镜像处理命令,向shell容器发送该镜像处理命令,镜像处理命令为镜像删除命令、镜像列表获取命令和镜像信息获取命令中的一种。
用户可以在SSH命令界面中输入镜像处理命令,客户端可以接收用户输入的镜像处理命令,并通过与shell容器之间的连接将该镜像处理命令发送至shell容器。
步骤402:shell容器向后端服务模块转发镜像处理命令。
步骤403:后端服务模块向第二服务器发送镜像处理命令,以使第二服务器根据镜像处理命令执行对应的处理操作。
当镜像处理命令为镜像删除命令时,后端服务模块可以根据镜像删除命令中携带的令牌值调用web服务接口,通过web服务接口将该镜像删除命令转发至第二服务器。其中,该镜像删除命令中还可以携带镜像名称。还需要说明的是,镜像删除命令中携带的令牌(token)值是shell容器在向后端服务模块转发该命令时添加到该命令中的。
第二服务器在接收到该镜像删除命令之后,可以根据该镜像名称,删除镜像记录表中相应地镜像记录,并将该镜像记录对应的其他镜像信息均删除。之后,第二服务器可以发送删除通知消息至后端服务模块,该删除通知消息用于指示镜像记录删除成功。
可选地,当镜像处理命令为镜像列表获取命令,后端服务模块同样可以根据镜像列表获取命令中的token值调用web服务接口,将该镜像列表获取命令转发至第二服务器。第二服务器在接收到该镜像列表获取命令之后,可以获取存储的镜像列表,并将该镜像列表返回给后端服务模块。
可选地,当镜像处理命令为镜像信息获取命令时,后端服务模块同样可以根据镜像列表获取命令中的token值调用web服务接口,将该镜像信息获取命令转发至第二服务器,该镜像信息获取命令中还可以携带镜像名称。第二服务器可以根据该镜像名称,获取对应的镜像信息,并返回给后端服务模块。
步骤404:后端服务模块接收第二服务器返回的镜像处理结果,并将镜像处理结果发送至shell容器。
由前述步骤403可知,根据镜像处理命令的不同,镜像处理结果也不同。后端服务模块可以将接收到的第二服务器返回的镜像处理结果反馈至shell容器。
需要说明的是,前述shell容器发送的镜像处理命令也可以为镜像下载命令。在这种情况下,后端服务模块在接收到该镜像下载命令之后,无需调用web服务接口,而是可以根据该镜像下载命令中携带的镜像名称和存储路径,调用docker save命令,将该镜像名称所对应的镜像保存至对应的存储路径下。
步骤405:shell容器将该镜像处理结果转发至客户端。
步骤406:客户端显示该镜像处理结果。
客户端以将shell容器发送的镜像处理结果显示在SSH命令界面上,以通知用户。
在本申请实施例中,通过shell容器可以创建shell容器的镜像,并通过shell容器根据镜像处理命令来对创建的shell容器的镜像进行管理,简化了开发人员操作。
参见图5,本申请实施例提供了一种任务处理装置500,该任务处理装置可以应用于客户端中,该装置500包括:
发送模块501,用于发送壳shell容器创建命令,shell容器创建命令用于指示在第一服务器上创建shell容器;
连接模块502,用于显示安全壳协议SSH命令界面,基于在SSH命令界面上检测到的登录操作,建立与shell容器之间的连接;
接收模块503,用于接收用户在SSH命令界面输入的任务处理命令,将任务处理命令发送至shell容器,以使shell容器基于任务处理命令返回处理结果,处理结果包括基于shell容器的镜像运行的深度学习训练任务的任务信息。
可选地,连接模块502具体用于:
接收用户在SSH命令界面中输入的登录命令,登录命令中携带用户账号信息;
根据登录命令向第一服务器发送容器登录请求,容器登录请求携带用户账号信息;
接收shell容器对应的端口的端口信息,端口信息是第一服务器对用户账号信息验证通过后发送的;
通过shell容器对应的端口的端口信息,与shell容器建立连接。
可选地,接收模块503,还用于接收用户在SSH命令界面输入的第一命令,第一命令携带第一任务标识,第一任务标识用于指示第一命令是用于创建shell容器的镜像的任务的命令;
发送模块501,还用于向shell容器发送第一命令,以使shell容器基于第一命令创建shell容器的镜像。
可选地,接收模块503,还用于接收用户在SSH命令界面输入的镜像处理命令,镜像处理命令为镜像删除命令、镜像列表获取命令和镜像信息获取命令中的一种;
发送模块501,还用于向shell容器发送镜像处理命令,以指示shell容器基于镜像处理命令对shell容器的镜像执行对应的操作;
接收模块503,还用于接收shell容器发送的镜像处理结果。
可选地,任务处理命令为任务创建命令、任务删除命令、任务重启命令、任务列表查看命令和任务信息查看命令中的一种。
可选地,当任务处理命令为任务创建命令时,任务创建命令用于指示在第一服务器上创建第一任务容器,第一任务容器用于运行指定脚本,以执行第一任务,第一任务为基于shell容器的镜像运行的深度学习训练任务。
可选地,接收模块503,还用于在接收到任务出错通知消息之后,接收用户在SSH命令界面输入的任务重启命令,任务出错通知消息用于提示用户第一任务执行出错,任务重启命令携带第一任务容器的容器标识;
发送模块501,还用于向shell容器发送任务重启命令,以指示shell容器重启第一任务容器。
可选地,第一任务容器包括为第一任务创建的第一进程;
接收模块503,还用于在接收到任务出错通知消息之后,接收用户在命令界面输入的第二命令,第二命令包括第一任务的任务标识;
发送模块501,还用于向shell容器发送第二命令,以指示shell容器获取第一任务容器的执行信息,并在第一任务容器内删除第一进程,重新为第一任务创建第二进程,第二进程由shell容器管理;
接收模块503,还用于接收shell容器发送的第一任务容器的执行信息。
参见图6,本申请实施例提供了一种任务处理装置600,该装置应用于第一服务器,该任务处理装置600包括:shell容器601和后端服务模块602;
shell容器601,用于接收客户端发送的任务处理命令,向后端服务模块602发送任务处理命令,后端服务模块中存储有shell容器的镜像;
后端服务模块602,用于将任务处理命令发送至第二服务器,以使第二服务器对任务处理命令进行处理,第二服务器是指用于提供网页web页面所对应的多种服务的服务器;
后端服务模块602,还用于接收第二服务器返回的处理结果,将处理结果转发至shell容器,处理结果包括基于shell容器的镜像运行的深度学习训练任务的任务信息;
shell容器601还用于向客户端发送处理结果。
可选地,shell容器601,还用于接收客户端发送的第一命令,第一命令携带第一任务标识,第一任务标识用于指示第一命令是用于创建shell容器的镜像的任务的命令;向后端服务模块602发送镜像创建命令,镜像创建命令中携带第一任务标识;
后端服务模块602用于根据第一任务标识确定shell容器标识;调用docker服务,根据shell容器标识生成shell容器的镜像,存储shell容器的镜像。
可选地,镜像创建命令还包括镜像名称;
后端服务模块602还用于将shell容器的镜像信息发送至第二服务器,以使第二服务器根据shell容器的镜像信息在镜像记录表中添加shell容器的镜像的镜像记录,shell容器的镜像信息包括镜像名称。
可选地,shell容器601还用于接收客户端发送的镜像处理命令,向后端服务模块602发送镜像处理命令,镜像处理命令为镜像删除命令、镜像列表获取命令和镜像信息获取命令中的一种;
后端服务模块602还用于向第二服务器发送镜像处理命令,以使第二服务器根据镜像处理命令执行对应的处理操作;接收第二服务器返回的镜像处理结果,并将镜像处理结果发送至shell容器601;
shell容器601还用于向客户端发送镜像处理结果。
可选地,任务处理命令为任务创建命令、任务删除命令、任务重启命令、任务列表查看命令和任务信息查看命令中的一种。
可选地,该装置600还包括第一任务容器,第一任务容器用于执行第一任务,第一任务是指基于shell容器的镜像运行的深度学习训练任务。
可选地,任务处理命令为任务创建命令;
后端服务模块602还用于接收任务容器创建命令,任务容器创建命令是第二服务器在接收到任务创建指令后发送的,任务创建命令用于指示创建第一任务,任务容器创建命令用于指示创建第一任务容器;根据shell容器的镜像创建第一任务容器;在第一任务容器创建完成之后,向第二服务器发送第一通知消息,以使第二服务器根据第一通知消息将第一任务添加至任务列表中,第一通知消息用于指示第一任务容器创建成功;
相应地,后端服务模块602还用于接收第二服务器反馈的任务创建成功消息,任务创建成功消息用于指示第一任务创建成功。
可选地,第一任务容器用于运行指定脚本,以执行第一任务;
当第一任务执行出错时,服务器保留第一任务容器;
当shell容器601接收到客户端发送的任务重启命令时,shell容器601还用于向后端服务模块602发送任务重启命令,任务重启命令携带第一任务容器的容器标识;
后端服务模块602还用于通过调用docker命令,根据第一任务容器的容器标识重启第一任务容器。
可选地,第一任务容器用于运行指定脚本,以执行第一任务,第一任务容器包括第一进程;
当第一任务执行出错时,shell容器601还用于向客户端发送任务出错通知消息;当shell容器接收到客户端发送的第二命令时,向后端服务模块602发送第二命令,第二命令包括第一任务的任务标识;
后端服务模块602还用于根据第一任务的任务标识调用执行接口;
shell容器601还用于通过执行接口获取第一任务容器的执行信息,并在第一任务容器内为第一任务创建第二进程,删除第一进程,第二进程由shell容器管理。
在本申请实施例中,任务可以包括深度学习任务,可以包括神经网络模型的训练任务,也可以包括利用神经网络进行目标识别(人脸识别、人体识别、车辆识别、车牌识别等)、行为识别、目标跟踪、语音识别等各项功能的任务,也可以包括其他深度学习相关的任务,在此不做限定。
图7示出了本申请一个示例性实施例是本申请实施例提供的一种用于进行任务处理的服务器700的结构示意图。上述图2-4所示的实施例中的服务器的功能即可以通过图7中所示的服务器来实现。该服务器可以是后台服务器集群中的服务器。具体来讲:
服务器700包括中央处理单元(CPU)701、包括随机存取存储器(RAM)702和只读存储器(ROM)703的系统存储器704,以及连接系统存储器704和中央处理单元701的系统总线705。服务器700还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)706,和用于存储操作系统713、应用程序714和其他程序模块715的大容量存储设备707。
基本输入/输出系统706包括有用于显示信息的显示器708和用于用户输入信息的诸如鼠标、键盘之类的输入设备709。其中显示器708和输入设备709都通过连接到系统总线705的输入输出控制器710连接到中央处理单元701。基本输入/输出系统706还可以包括输入输出控制器710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器710还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备707通过连接到系统总线705的大容量存储控制器(未示出)连接到中央处理单元701。大容量存储设备707及其相关联的计算机可读介质为服务器700提供非易失性存储。也就是说,大容量存储设备707可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器704和大容量存储设备707可以统称为存储器。
根据本申请的各种实施例,服务器700还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器700可以通过连接在系统总线705上的网络接口单元711连接到网络712,或者说,也可以使用网络接口单元711来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。所述一个或者一个以上程序包含用于进行本申请实施例提供的任务处理方法的指令。
本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述图2-4所示实施例提供的任务处理方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述图2-4所示实施例提供的任务处理方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (13)

1.一种任务处理方法,其特征在于,应用于第一服务器,所述第一服务器包括壳shell容器和后端服务模块,所述方法包括:
所述shell容器接收客户端发送的任务处理命令,向所述后端服务模块发送任务处理命令,所述后端服务模块中存储有所述shell容器的镜像;
所述后端服务模块将所述任务处理命令发送至第二服务器,以使所述第二服务器对所述任务处理命令进行处理,所述第二服务器是指用于提供网页web页面所对应的多种服务的服务器;
所述后端服务模块接收所述第二服务器返回的处理结果,将所述处理结果转发至所述shell容器,所述处理结果包括基于所述shell容器的镜像运行的深度学习训练任务的任务信息;
所述shell容器向所述客户端发送所述处理结果。
2.根据权利要求1所述的方法,其特征在于,所述shell容器接收客户端发送的任务处理命令之前,还包括:
所述shell容器接收所述客户端发送的第一命令,所述第一命令携带第一任务标识,所述第一任务标识用于指示所述第一命令是用于创建shell容器的镜像的任务的命令;
所述shell容器向所述后端服务模块发送镜像创建命令,所述镜像创建命令中携带所述第一任务标识;
所述后端服务模块根据所述第一任务标识确定shell容器标识;
所述后端服务模块调用docker服务,根据所述shell容器标识生成所述shell容器的镜像,存储所述shell容器的镜像。
3.根据权利要求2所述的方法,其特征在于,所述镜像创建命令还包括镜像名称;
所述存储所述shell容器的镜像之后,所述方法还包括:
所述后端服务模块将所述shell容器的镜像信息发送至所述第二服务器,以使所述第二服务器根据所述shell容器的镜像信息在镜像记录表中添加所述shell容器的镜像的镜像记录,所述shell容器的镜像信息包括所述镜像名称。
4.根据权利要求1-3任一所述的方法,其特征在于,所述方法还包括:
所述shell容器接收所述客户端发送的镜像处理命令,向所述后端服务模块发送所述镜像处理命令,所述镜像处理命令为镜像删除命令、镜像列表获取命令和镜像信息获取命令中的一种;
所述后端服务模块向所述第二服务器发送所述镜像处理命令,以使所述第二服务器根据所述镜像处理命令执行对应的处理操作;
所述后端服务模块接收所述第二服务器返回的镜像处理结果,并将所述镜像处理结果发送至所述shell容器;
所述shell容器向所述客户端发送所述镜像处理结果。
5.根据权利要求1-3任一所述的方法,其特征在于,所述任务处理命令为任务创建命令、任务删除命令、任务重启命令、任务列表查看命令和任务信息查看命令中的一种。
6.根据权利要求1-3任一所述的方法,其特征在于,所述第一服务器还包括第一任务容器,所述第一任务容器用于执行第一任务,所述第一任务是指基于所述shell容器的镜像运行的深度学习训练任务。
7.根据权利要求6所述的方法,其特征在于,所述任务处理命令为任务创建命令,所述后端服务模块接收所述第二服务器返回的处理结果之前,还包括:
所述后端服务模块接收任务容器创建命令,所述任务容器创建命令是所述第二服务器在接收到所述任务创建命令后发送的,所述任务创建命令用于指示创建所述第一任务,所述任务容器创建命令用于指示创建所述第一任务容器;
所述后端服务模块根据所述shell容器的镜像创建所述第一任务容器;
在所述第一任务容器创建完成之后,所述后端服务模块向所述第二服务器发送第一通知消息,以使所述第二服务器根据所述第一通知消息将所述第一任务添加至任务列表中,所述第一通知消息用于指示所述第一任务容器创建成功;
相应地,所述后端服务模块接收所述第二服务器返回的处理结果,包括:
所述后端服务模块接收所述第二服务器反馈的任务创建成功消息,所述任务创建成功消息用于指示所述第一任务创建成功。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述第一任务容器运行指定脚本,以执行所述第一任务;
当所述第一任务执行出错时,所述第一服务器保留所述第一任务容器;
当所述shell容器接收到所述客户端发送的任务重启命令时,所述shell容器向所述后端服务模块发送所述任务重启命令,所述任务重启命令携带所述第一任务容器的容器标识;
所述后端服务模块通过调用docker命令,根据所述第一任务容器的容器标识重启所述第一任务容器。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一任务容器运行指定脚本,以执行所述第一任务;
当所述第一任务执行出错时,所述第一服务器保留所述第一任务容器;
当所述shell容器接收到所述客户端发送的任务重启命令时,所述shell容器向所述后端服务模块发送所述任务重启命令,所述任务重启命令携带所述第一任务容器的容器标识;
所述后端服务模块通过调用docker命令,根据所述第一任务容器的容器标识重启所述第一任务容器。
10.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述第一任务容器运行指定脚本,以执行所述第一任务,所述第一任务容器包括第一进程;
当所述第一任务执行出错时,所述shell容器向所述客户端发送任务出错通知消息;
当所述shell容器接收到所述客户端发送的第二命令时,向所述后端服务模块发送所述第二命令,所述第二命令包括所述第一任务的任务标识;
所述后端服务模块根据所述第一任务的任务标识调用执行接口;
所述shell容器通过所述执行接口获取所述第一任务容器的执行信息,并在所述第一任务容器内为所述第一任务创建第二进程,删除所述第一进程,所述第二进程由所述shell容器管理。
11.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一任务容器运行指定脚本,以执行所述第一任务,所述第一任务容器包括第一进程;
当所述第一任务执行出错时,所述shell容器向所述客户端发送任务出错通知消息;
当所述shell容器接收到所述客户端发送的第二命令时,向所述后端服务模块发送所述第二命令,所述第二命令包括所述第一任务的任务标识;
所述后端服务模块根据所述第一任务的任务标识调用执行接口;
所述shell容器通过所述执行接口获取所述第一任务容器的执行信息,并在所述第一任务容器内为所述第一任务创建第二进程,删除所述第一进程,所述第二进程由所述shell容器管理。
12.一种任务处理装置,其特征在于,应用于第一服务器,所述装置包括:壳shell容器和后端服务模块;
所述shell容器用于接收客户端发送的任务处理命令,向所述后端服务模块发送任务处理命令,所述后端服务模块中存储有所述shell容器的镜像;
所述后端服务模块用于将所述任务处理命令发送至第二服务器,以使所述第二服务器对所述任务处理命令进行处理,所述第二服务器是指用于提供网页web页面所对应的多种服务的服务器;
所述后端服务模块还用于接收所述第二服务器返回的处理结果,将所述处理结果转发至所述shell容器,所述处理结果包括基于所述shell容器的镜像运行的深度学习训练任务的任务信息;
所述shell容器还用于向所述客户端发送所述处理结果。
13.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-11任一所述方法的步骤。
CN201910577574.8A 2019-06-28 2019-06-28 任务处理方法、装置及存储介质 Active CN112148348B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910577574.8A CN112148348B (zh) 2019-06-28 2019-06-28 任务处理方法、装置及存储介质
CN202311125854.8A CN117215635A (zh) 2019-06-28 2019-06-28 任务处理方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910577574.8A CN112148348B (zh) 2019-06-28 2019-06-28 任务处理方法、装置及存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311125854.8A Division CN117215635A (zh) 2019-06-28 2019-06-28 任务处理方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN112148348A CN112148348A (zh) 2020-12-29
CN112148348B true CN112148348B (zh) 2023-10-20

Family

ID=73870146

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910577574.8A Active CN112148348B (zh) 2019-06-28 2019-06-28 任务处理方法、装置及存储介质
CN202311125854.8A Pending CN117215635A (zh) 2019-06-28 2019-06-28 任务处理方法、装置及存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202311125854.8A Pending CN117215635A (zh) 2019-06-28 2019-06-28 任务处理方法、装置及存储介质

Country Status (1)

Country Link
CN (2) CN112148348B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107343000A (zh) * 2017-07-04 2017-11-10 北京百度网讯科技有限公司 用于处理任务的方法和装置
CN107908535A (zh) * 2017-11-13 2018-04-13 珠海金山网络游戏科技有限公司 分布式客户端模拟方法及装置
CN107948203A (zh) * 2017-12-29 2018-04-20 平安科技(深圳)有限公司 一种容器登录方法、应用服务器、系统及存储介质
CN108667779A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种远程登录容器的方法及服务器
CN109086134A (zh) * 2018-07-19 2018-12-25 郑州云海信息技术有限公司 一种深度学习作业的运行方法和装置
CN109144661A (zh) * 2018-07-05 2019-01-04 杭州电子科技大学 一种基于docker的深度学习管理方法
US10216512B1 (en) * 2016-09-29 2019-02-26 Amazon Technologies, Inc. Managed multi-container builds
KR20190028210A (ko) * 2017-09-08 2019-03-18 (주)케이아이엔엑스 컨테이너 기반 인공지능 어플리케이션을 배포하는 클라우드 서비스 방법과 시스템
CN109491674A (zh) * 2018-11-07 2019-03-19 李斌 一种在Kubernetes集群中自动部署服务的方法与系统
CN109508238A (zh) * 2019-01-05 2019-03-22 咪付(广西)网络技术有限公司 一种用于深度学习的资源管理系统及方法
CN109740765A (zh) * 2019-01-31 2019-05-10 成都品果科技有限公司 一种基于亚马逊网络服务器的机器学习系统搭建方法
WO2019100605A1 (zh) * 2017-11-21 2019-05-31 平安科技(深圳)有限公司 平台即服务paas容器平台的构建方法、服务器、系统及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030163570A1 (en) * 2002-02-26 2003-08-28 Sun Microsystems, Inc. Command line interface session tool
US20140075322A1 (en) * 2012-09-11 2014-03-13 Paul Delano Web Application Server Architecture With Embedded Scripting Language And Shell Services
US11120299B2 (en) * 2016-01-27 2021-09-14 Microsoft Technology Licensing, Llc Installation and operation of different processes of an AI engine adapted to different configurations of hardware located on-premises and in hybrid environments
US10803401B2 (en) * 2016-01-27 2020-10-13 Microsoft Technology Licensing, Llc Artificial intelligence engine having multiple independent processes on a cloud based platform configured to scale
CN108737468B (zh) * 2017-04-19 2021-11-12 中兴通讯股份有限公司 云平台服务集群、构建方法及装置
CN107729120B (zh) * 2017-09-29 2021-07-20 中国石油化工股份有限公司 勘探开发软件的容器镜像制作方法
US10831519B2 (en) * 2017-11-22 2020-11-10 Amazon Technologies, Inc. Packaging and deploying algorithms for flexible machine learning

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216512B1 (en) * 2016-09-29 2019-02-26 Amazon Technologies, Inc. Managed multi-container builds
CN108667779A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种远程登录容器的方法及服务器
CN107343000A (zh) * 2017-07-04 2017-11-10 北京百度网讯科技有限公司 用于处理任务的方法和装置
KR20190028210A (ko) * 2017-09-08 2019-03-18 (주)케이아이엔엑스 컨테이너 기반 인공지능 어플리케이션을 배포하는 클라우드 서비스 방법과 시스템
CN107908535A (zh) * 2017-11-13 2018-04-13 珠海金山网络游戏科技有限公司 分布式客户端模拟方法及装置
WO2019100605A1 (zh) * 2017-11-21 2019-05-31 平安科技(深圳)有限公司 平台即服务paas容器平台的构建方法、服务器、系统及存储介质
CN107948203A (zh) * 2017-12-29 2018-04-20 平安科技(深圳)有限公司 一种容器登录方法、应用服务器、系统及存储介质
CN109144661A (zh) * 2018-07-05 2019-01-04 杭州电子科技大学 一种基于docker的深度学习管理方法
CN109086134A (zh) * 2018-07-19 2018-12-25 郑州云海信息技术有限公司 一种深度学习作业的运行方法和装置
CN109491674A (zh) * 2018-11-07 2019-03-19 李斌 一种在Kubernetes集群中自动部署服务的方法与系统
CN109508238A (zh) * 2019-01-05 2019-03-22 咪付(广西)网络技术有限公司 一种用于深度学习的资源管理系统及方法
CN109740765A (zh) * 2019-01-31 2019-05-10 成都品果科技有限公司 一种基于亚马逊网络服务器的机器学习系统搭建方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
基于Docker的服务器虚拟化实践;郑远;;福建电脑;第35卷(第04期);第108-110页 *
基于Kubernetes的分布式TensorFlow平台的设计与实现;余昌发;程学林;杨小虎;;计算机科学;第45卷(第11A期);第527-531页 *
基于Web浏览器的远程容器登录系统设计;陈霄等;网络新媒体技术;第06卷(第06期);第61-65页 *
基于容器云的深度学习平台设计与实现;朱天放等;电子设计工程;第27卷(第09期);第21-25页 *

Also Published As

Publication number Publication date
CN117215635A (zh) 2023-12-12
CN112148348A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN109120678B (zh) 用于分布式存储系统的服务托管的方法和装置
CN110752947B (zh) 一种k8s集群部署方法及装置,一种部署平台
US20220179682A1 (en) Task processing method, apparatus, and system based on distributed system
JP2020518926A (ja) 分散コンピューティングシステムのための、バックアップおよび復元フレームワーク
US20050240931A1 (en) System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller
CN110138577B (zh) 集群创建方法、第一服务器以及可读存储介质
CN111324522A (zh) 一种自动化测试系统及方法
CN110890987A (zh) 自动创建集群的方法、装置、设备和系统
CN111651352B (zh) 一种仓库代码的合并方法及装置
CN115168031A (zh) 一种雾计算系统、方法、电子设备及存储介质
CN115514667A (zh) 接入服务处理方法、系统、装置、电子设备以及存储介质
CN113419818B (zh) 基础组件部署方法、装置、服务器及存储介质
CN111104336A (zh) 一种基于容器和vnc的服务接口在线测试方法及装置
CN113127009A (zh) 大数据管理平台的自动化部署方法和装置
CN112600931B (zh) 一种api网关部署方法及装置
CN114006815B (zh) 云平台节点的自动化部署方法、装置、节点及存储介质
CN111506388B (zh) 容器性能探测方法、容器管理平台及计算机存储介质
CN111008064B (zh) 虚机资源调度方法和装置、集群部署方法和装置
CN110727575A (zh) 一种信息处理方法、系统、装置、以及存储介质
CN112148348B (zh) 任务处理方法、装置及存储介质
CN117041111A (zh) 车云功能测试方法、装置、电子设备及存储介质
CN114610446A (zh) 一种自动注入探针的方法、装置及系统
CN115480910A (zh) 多集群资源管理方法、装置及电子设备
CN112973129A (zh) 游戏部署方法、装置、电子设备及计算机可读存储介质
CN114691486A (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
GR01 Patent grant
GR01 Patent grant