[发明专利]一种任务监控方法、系统、设备以及介质在审
申请号: | 202010923947.5 | 申请日: | 2020-09-04 |
公开(公告)号: | CN112069030A | 公开(公告)日: | 2020-12-11 |
发明(设计)人: | 张一罡;张璐 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 杨帆;宋薇薇 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 监控 方法 系统 设备 以及 介质 | ||
本发明公开了一种任务监控方法,包括以下步骤:响应于任务发起控制器的线程向任务执行控制器发送任务指令,利用所述线程获取所述任务执行控制器执行所述任务指令对应的任务时记录的状态文件;读取所述状态文件中的任务的执行状态;响应于所述状态文件中任务的执行状态为执行完成,根据所述状态文件中的返回码判断所述任务执行控制器对应的任务是否执行成功;响应于执行失败,结束所述线程。本发明还公开了一种系统、计算机设备以及可读存储介质。本发明提供的方案实现了在多控制器的环境下,控制器可以向其他控制器发起任务请求,并监控目标控制器的执行状态,从而能够根据执行状态决定下一步的动作,达到了多控制器协同工作的效果。
技术领域
本发明涉及控制器领域,具体涉及一种任务监控方法、系统、设备以及存储介质。
背景技术
多控制器的存储场景下,某个控制器上的存储系统,可能需要和另外一个控制器上的存储系统进行指令交互。当某个控制器A,向另外一个控制器B发出任务指令后,接收到任务指令的控制器B将创建一个线程去执行这个任务。而发出任务指令的控制器A,需要等待控制器B完成任务才能继续往下执行。这就需要控制器A能够监控控制器B的线程执行状态,当控制器B线程执行完毕时,控制器A要能够知道控制器B线程已经执行完毕这一结果,这样控制器A才能继续往下执行。并且在某些情况下,控制器A需要知道控制器B线程执行的情况,比如线程执行过程中是否发生过错误等等。对于控制器B来说,自己并不具有主动通知控制器A的能力。因为任务本身并不会去记录发起者的信息,所以需要控制器A主动查询控制器B的任务状态。而控制器A只能够根据控制器B线程反馈的信息知道控制B任务已经执行完毕,但是不能够查询任务的执行进度、状态等信息。
发明内容
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种任务监控方法,包括以下步骤:
响应于任务发起控制器的线程向任务执行控制器发送任务指令,利用所述线程获取所述任务执行控制器执行所述任务指令对应的任务时记录的状态文件;
读取所述状态文件中的任务的执行状态;
响应于所述状态文件中任务的执行状态为执行完成,根据所述状态文件中的返回码判断所述任务执行控制器对应的任务是否执行成功;
响应于执行失败,结束所述线程。
在一些实施例中,响应于任务发起控制器的线程向任务执行控制器发送任务指令,利用所述线程获取所述任务执行控制器执行所述任务指令对应的任务时记录的状态文件,进一步包括:
所述任务执行控制器响应于接收到所述任务指令,记录执行所述任务的每一个阶段时对应的信息;
响应于所述任务执行控制器在其中一个阶段执行失败,将所述状态文件中所述任务的执行状态更新为执行完成,并将所述返回码设置为执行失败的原因对应的返回码。
在一些实施例中,还包括:
响应于所述任务执行控制器正在执行所述任务的其中一个阶段,将所述状态文件中所述任务的执行状态更新为未执行完成。
在一些实施例中,还包括:
响应于所述每一个阶段均执行成功,将所述状态文件中所述任务的执行状态更新为执行完成,并将所述返回码设置为执行成功对应的返回码。
在一些实施例中,利用所述线程获取所述任务执行控制器执行所述任务指令对应的任务时记录的状态文件,进一步包括:
获取所述状态文件前,判断是否有其他线程处于上锁状态;
响应于没有其他线程处于上锁状态,所述线程利用上锁服务进行上锁;
响应于检测到已获取所述状态文件,利用回调函数将所述线程唤起以利用释放锁服务将锁释放并读取所述状态文件的内容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010923947.5/2.html,转载请声明来源钻瓜专利网。