本技术涉及程序开发测试领域,特别涉及一种任务处理方法、装置及计算机可读存储介质。
背景技术:
1、随着人工智能(artificial intelligence,ai)技术的发展,出现了各种用于提供训练和推理服务的训练平台。通常,训练平台可以通过web页面向开发人员提供平台功能。然而,开发人员通常均是在linux环境下进行代码编辑、编译等,在这种情况下,当开发人员在完成代码编辑、编译等操作之后,需要切换到web页面后通过点击相应按钮来触发训练任务,极为不便。
技术实现思路
1、本技术实施例提供了一种任务处理方法、装置及存储介质。所述技术方案如下:
2、一方面,提供了一种任务处理方法,所述方法包括:
3、发送壳shell容器创建命令,所述shell容器创建命令用于指示在第一服务器上创建shell容器;
4、显示安全壳协议ssh命令界面,基于在所述ssh命令界面上检测到的登录操作,建立与所述shell容器之间的连接;
5、接收用户在所述ssh命令界面输入的任务处理命令,将所述任务处理命令发送至所述shell容器,以使所述shell容器基于所述任务处理命令返回处理结果,所述处理结果包括基于所述shell容器的镜像运行的深度学习训练任务的任务信息。
6、可选地,所述基于在所述ssh命令界面上检测到的登录操作,建立与所述shell容器之间的连接,包括:
7、接收用户在所述ssh命令界面中输入的登录命令,所述登录命令中携带用户账号信息;
8、根据所述登录命令向所述第一服务器发送容器登录请求,所述容器登录请求携带用户账号信息;
9、接收所述shell容器对应的端口的端口信息,所述端口信息是所述第一服务器对所述用户账号信息验证通过后发送的;
10、通过所述shell容器对应的端口的端口信息,与所述shell容器建立连接。
11、可选地,所述接收用户在所述ssh命令界面输入的任务处理命令之前,还包括:
12、接收用户在所述ssh命令界面输入的第一命令,所述第一命令携带第一任务标识,所述第一任务标识用于指示所述第一命令是用于创建shell容器的镜像的任务的命令;
13、向所述shell容器发送所述第一命令,以使所述shell容器基于所述第一命令创建所述shell容器的镜像。
14、可选地,所述方法还包括:
15、接收用户在所述ssh命令界面输入的镜像处理命令,所述镜像处理命令为镜像删除命令、镜像列表获取命令和镜像信息获取命令中的一种;
16、向所述shell容器发送所述镜像处理命令,以指示所述shell容器基于所述镜像处理命令对所述shell容器的镜像执行对应的操作;
17、接收所述shell容器发送的镜像处理结果。
18、可选地,所述任务处理命令为任务创建命令、任务删除命令、任务重启命令、任务列表查看命令和任务信息查看命令中的一种。
19、可选地,当所述任务处理命令为任务创建命令时,所述任务创建命令用于指示在所述第一服务器上创建第一任务容器,所述第一任务容器用于运行指定脚本,以执行第一任务,所述第一任务为基于所述shell容器的镜像运行的深度学习训练任务。
20、可选地,所述方法还包括:
21、在接收到任务出错通知消息之后,接收用户在所述ssh命令界面输入的任务重启命令,所述任务出错通知消息用于提示用户所述第一任务执行出错,所述任务重启命令携带所述第一任务容器的容器标识;
22、向所述shell容器发送所述任务重启命令,以指示所述shell容器重启所述第一任务容器。
23、可选地,所述第一任务容器包括为所述第一任务创建的第一进程,所述方法还包括:
24、在接收到任务出错通知消息之后,接收用户在所述命令界面输入的第二命令,所述第二命令包括所述第一任务的任务标识;
25、向所述shell容器发送所述第二命令,以指示所述shell容器获取所述第一任务容器的执行信息,并在所述第一任务容器内删除第一进程,重新为所述第一任务创建第二进程,所述第二进程由所述shell容器管理;
26、接收所述shell容器发送的所述第一任务容器的执行信息。
27、另一方面,提供了一种任务处理方法,应用于第一服务器,所述第一服务器包括shell容器和后端服务模块,所述方法包括:
28、所述shell容器接收客户端发送的任务处理命令,向所述后端服务模块发送任务处理命令,所述后端服务模块中存储有所述shell容器的镜像;
29、所述后端服务模块将所述任务处理命令发送至第二服务器,以使所述第二服务器对所述任务处理命令进行处理,所述第二服务器是指用于提供网页web页面所对应的多种服务的服务器;
30、所述后端服务模块接收所述第二服务器返回的处理结果,将所述处理结果转发至所述shell容器,所述处理结果包括基于所述shell容器的镜像运行的深度学习训练任务的任务信息;
31、所述shell向所述客户端发送所述处理结果。
32、可选地,所述shell容器接收客户端发送的任务处理命令之前,还包括:
33、所述shell容器接收所述客户端发送的第一命令,则所述第一命令携带第一任务标识,所述第一任务标识用于指示所述第一命令是用于创建shell容器的镜像的任务的命令;
34、所述shell容器向所述后端服务模块发送镜像创建命令,所述镜像创建命令中携带所述第一任务标识;
35、所述后端服务模块根据所述第一任务标识确定shell容器标识;
36、所述后端服务模块调用docker服务,根据所述shell容器标识生成所述shell容器的镜像,存储所述shell容器的镜像。
37、可选地,所述镜像创建命令还包括镜像名称;
38、所述存储所述shell容器的镜像之后,所述方法还包括:
39、所述后端服务模块将所述shell容器的镜像信息发送至所述第二服务器,以使所述第二服务器根据所述shell容器的镜像信息在镜像记录表中添加所述shell容器的镜像的镜像记录,所述shell容器的镜像信息包括所述镜像名称。
40、可选地,所述方法还包括:
41、所述shell容器接收所述客户端发送的镜像处理命令,向所述后端服务模块发送所述镜像处理命令,所述镜像处理命令为镜像删除命令、镜像列表获取命令和镜像信息获取命令中的一种;
42、所述后端服务模块向所述第二服务器发送所述镜像处理命令,以使所述第二服务器根据所述镜像处理命令执行对应的处理操作;
43、所述后端服务模块接收所述第二服务器返回的镜像处理结果,并将所述镜像处理结果发送至shell容器;
44、所述shell容器向所述客户端发送所述镜像处理结果。
45、可选地,所述任务处理命令为任务创建命令、任务删除命令、任务重启命令、任务列表查看命令和任务信息查看命令中的一种。
46、可选地,所述第一服务器还包括第一任务容器,所述第一任务容器用于执行第一任务,所述第一任务是指基于所述shell容器的镜像运行的深度学习训练任务。
47、可选地,所述任务处理命令为任务创建命令,所述后端服务模块接收所述第二服务器返回的处理结果之前,还包括:
48、所述后端服务模块接收任务容器创建命令,所述任务容器创建命令是所述第二服务器在接收到所述任务创建指令后发送的,所述任务创建命令用于指示创建所述第一任务,所述任务容器创建命令用于指示创建所述第一任务容器;
49、所述后端服务模块根据所述shell容器的镜像创建所述第一任务容器;
50、在所述第一任务容器创建完成之后,所述后端服务模块向所述第二服务器发送第一通知消息,以使所述第二服务器根据所述第一通知消息将所述第一任务添加至任务列表中,所述第一通知消息用于指示所述第一任务容器创建成功;
51、相应地,所述后端服务模块接收所述第二服务器返回的处理结果,包括:
52、所述后端服务模块接收所述第二服务器反馈的任务创建成功消息,所述任务创建成功消息用于指示所述第一任务创建成功。
53、可选地,所述方法还包括:
54、所述第一任务容器运行指定脚本,以执行所述第一任务;
55、当所述第一任务执行出错时,所述第一服务器保留所述第一任务容器;
56、当所述shell容器接收到所述客户端发送的任务重启命令时,所述shell容器向所述后端服务模块发送所述任务重启命令,所述任务重启命令携带所述第一任务容器的容器标识;
57、所述后端服务模块通过调用docker命令,根据所述第一任务容器的容器标识重启所述第一任务容器。
58、可选地,所述方法还包括:
59、所述第一任务容器运行指定脚本,以执行所述第一任务,所述第一任务容器包括所述第一进程;
60、当所述第一任务执行出错时,所述shell容器向所述客户端发送任务出错通知消息;
61、当所述shell容器接收到所述客户端发送的第二命令时,向所述后端服务模块发送第二命令,所述第二命令包括所述第一任务的任务标识;
62、所述后端服务模块根据所述第一任务的任务标识调用执行接口;
63、所述shell容器通过所述执行接口获取所述第一任务容器的执行信息,并在所述第一任务容器内为所述第一任务创建第二进程,删除所述第一进程,所述第二进程由所述shell容器管理。
64、另一方面,提供了一种客户端,该客户端包括:
65、发送模块,用于发送壳shell容器创建命令,所述shell容器创建命令用于指示在第一服务器上创建shell容器;
66、连接模块,用于显示安全壳协议ssh命令界面,基于在所述ssh命令界面上检测到的登录操作,建立与所述shell容器之间的连接;
67、接收模块,用于接收用户在所述ssh命令界面输入的任务处理命令,将所述任务处理命令发送至所述shell容器,以使所述shell容器基于所述任务处理命令返回处理结果,所述处理结果包括基于所述shell容器的镜像运行的深度学习训练任务的任务信息。
68、可选地,所述连接模块具体用于:
69、接收用户在所述ssh命令界面中输入的登录命令,所述登录命令中携带用户账号信息;
70、根据所述登录命令向所述第一服务器发送容器登录请求,所述容器登录请求携带用户账号信息;
71、接收所述shell容器对应的端口的端口信息,所述端口信息是所述第一服务器对所述用户账号信息验证通过后发送的;
72、通过所述shell容器对应的端口的端口信息,与所述shell容器建立连接。
73、可选地,所述接收模块,还用于接收用户在所述ssh命令界面输入的第一命令,所述第一命令携带第一任务标识,所述第一任务标识用于指示所述第一命令是用于创建shell容器的镜像的任务的命令;
74、所述发送模块,还用于向所述shell容器发送所述第一命令,以使所述shell容器基于所述第一命令创建所述shell容器的镜像。
75、可选地,所述接收模块,还用于接收用户在所述ssh命令界面输入的镜像处理命令,所述镜像处理命令为镜像删除命令、镜像列表获取命令和镜像信息获取命令中的一种;
76、所述发送模块,还用于向所述shell容器发送所述镜像处理命令,以指示所述shell容器基于所述镜像处理命令对所述shell容器的镜像执行对应的操作;
77、所述接收模块,还用于接收所述shell容器发送的镜像处理结果。
78、可选地,所述任务处理命令为任务创建命令、任务删除命令、任务重启命令、任务列表查看命令和任务信息查看命令中的一种。
79、可选地,当所述任务处理命令为任务创建命令时,所述任务创建命令用于指示在所述第一服务器上创建第一任务容器,所述第一任务容器用于运行指定脚本,以执行第一任务,所述第一任务为基于所述shell容器的镜像运行的深度学习训练任务。
80、可选地,所述接收模块,还用于在接收到任务出错通知消息之后,接收用户在所述ssh命令界面输入的任务重启命令,所述任务出错通知消息用于提示用户所述第一任务执行出错,所述任务重启命令携带所述第一任务容器的容器标识;
81、所述发送模块,还用于向所述shell容器发送所述任务重启命令,以指示所述shell容器重启所述第一任务容器。
82、可选地,所述第一任务容器包括为所述第一任务创建的第一进程;
83、所述接收模块,还用于在接收到任务出错通知消息之后,接收用户在所述命令界面输入的第二命令,所述第二命令包括所述第一任务的任务标识;
84、所述发送模块,还用于向所述shell容器发送所述第二命令,以指示所述shell容器获取所述第一任务容器的执行信息,并在所述第一任务容器内删除第一进程,重新为所述第一任务创建第二进程,所述第二进程由所述shell容器管理;
85、所述接收模块,还用于接收所述shell容器发送的所述第一任务容器的执行信息。
86、另一方面,提供了一种服务器,该服务器包括:shell容器和后端服务模块;
87、shell容器,用于接收客户端发送的任务处理命令,向后端服务模块发送任务处理命令,后端服务模块中存储有shell容器的镜像;
88、后端服务模块,用于将任务处理命令发送至第二服务器,以使第二服务器对任务处理命令进行处理,第二服务器是指用于提供网页web页面所对应的多种服务的服务器;
89、后端服务模块,还用于接收第二服务器返回的处理结果,将处理结果转发至shell容器,所述处理结果包括基于所述shell容器的镜像运行的深度学习训练任务的任务信息;
90、所述shell容器还用于向所述客户端发送所述处理结果。
91、可选地,所述shell容器,还用于接收所述客户端发送的第一命令,所述第一命令携带第一任务标识,所述第一任务标识用于指示所述第一命令是用于创建shell容器的镜像的任务的命令;向后端服务模块发送镜像创建命令,镜像创建命令中携带第一任务标识;
92、后端服务模块用于根据第一任务标识确定shell容器标识;调用docker服务,根据shell容器标识生成shell容器的镜像,存储shell容器的镜像。
93、可选地,镜像创建命令还包括镜像名称;
94、后端服务模块还用于将shell容器的镜像信息发送至第二服务器,以使第二服务器根据shell容器的镜像信息在镜像记录表中添加shell容器的镜像的镜像记录,shell容器的镜像信息包括镜像名称。
95、可选地,shell容器还用于接收所述客户端发送的镜像处理命令,向后端服务模块发送镜像处理命令,镜像处理命令为镜像删除命令、镜像列表获取命令和镜像信息获取命令中的一种;
96、后端服务模块还用于向第二服务器发送镜像处理命令,以使第二服务器根据镜像处理命令执行对应的处理操作;接收第二服务器返回的镜像处理结果,并将镜像处理结果发送至shell容器;
97、所述shell容器还用于向所述客户端发送所述镜像处理结果。
98、可选地,任务处理命令为任务创建命令、任务删除命令、任务重启命令、任务列表查看命令和任务信息查看命令中的一种。
99、可选地,所述服务器还包括第一任务容器,所述第一任务容器用于执行第一任务,所述第一任务是指基于所述shell容器的镜像运行的深度学习训练任务。
100、可选地,任务处理命令为任务创建命令;
101、所述后端服务模块还用于接收任务容器创建命令,所述任务容器创建命令是所述第二服务器在接收到所述任务创建指令后发送的,所述任务创建命令用于指示创建所述第一任务,所述任务容器创建命令用于指示创建所述第一任务容器;根据所述shell容器的镜像创建所述第一任务容器;在所述第一任务容器创建完成之后,向所述第二服务器发送第一通知消息,以使所述第二服务器根据所述第一通知消息将所述第一任务添加至任务列表中,所述第一通知消息用于指示所述第一任务容器创建成功;
102、相应地,所述后端服务模块还用于接收所述第二服务器反馈的任务创建成功消息,所述任务创建成功消息用于指示所述第一任务创建成功。
103、可选地,所述第一任务容器用于运行指定脚本,以执行所述第一任务;
104、当所述第一任务执行出错时,所述服务器保留所述第一任务容器;
105、当所述shell容器接收到所述客户端发送的任务重启命令时,所述shell容器还用于向所述后端服务模块发送所述任务重启命令,所述任务重启命令携带所述第一任务容器的容器标识;
106、所述后端服务模块还用于通过调用docker命令,根据所述第一任务容器的容器标识重启所述第一任务容器。
107、可选地,所述第一任务容器用于运行指定脚本,以执行所述第一任务,所述第一任务容器包括所述第一进程;
108、当所述第一任务执行出错时,所述shell容器还用于向所述客户端发送任务出错通知消息;当所述shell容器接收到所述客户端发送的第二命令时,向所述后端服务模块发送第二命令,所述第二命令包括所述第一任务的任务标识;
109、所述后端服务模块还用于根据所述第一任务的任务标识调用执行接口;
110、所述shell容器还用于通过所述执行接口获取所述第一任务容器的执行信息,并在所述第一任务容器内为所述第一任务创建第二进程,删除所述第一进程,所述第二进程由所述shell容器管理。
111、另一方面,提供了一种客户端,所述客户端包括处理器、通信接口、存储器和通信总线;
112、其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
113、所述存储器用于存放计算机程序;
114、所述处理器用于执行所述存储器上所存放的程序,以实现前述提供任务处理方法。
115、另一方面,提供了一种服务器,所述服务器包括处理器、通信接口、存储器和通信总线;
116、其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
117、所述存储器用于存放计算机程序;
118、所述处理器用于执行所述存储器上所存放的程序,以实现前述提供任务处理方法。
119、另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述提供的任务处理方法的步骤。
120、本技术实施例提供的技术方案带来的有益效果至少包括:
121、在本技术实施例中,客户端可以将接收到的任务处理命令直接发送至第一服务器上的shell容器,shell容器可以向后端服务模块发送任务处理命令,后端服务模块可以将任务处理命令发送至第二服务器,由第二服务器来处理该任务处理命令,并返回处理结果。后端服务模块可以接收该处理结果,并将该处理结果发送至shell容器。由此可见,在本技术实施例中,可以直接在shell容器内触发任务,这样,当开发人员完成代码编辑、编译等工作之后,在linux环境下可以直接通过shell容器触发任务,而不必再切换至web页面通过点击相应按钮来触发任务,操作更为方便。