本发明属于进程优化,尤其涉及一种自定义进程的补偿方法、处理器与计算机存储介质。
背景技术:
1、伴随人机交互技术的发展以及人工智能模型的快速迭代,互联网已经极大的丰富了人们的生活,并能提供各种自动化技术快速完成原本需要人工反复执行的枯燥工作,例如各种图像自动识别/分类引擎、图文转换引擎、图文翻译引擎等,能够自动化的将大批量的输入文档或者图像自动按照设定的属性进行分类保存、将图像转换为文本描述以便于后续检索、将输入文档翻译成指定目标语言形式的图文输出等。
2、尽管如此,某些情况下,用户仍然会有一些个性化的批量处理需求,例如将输入的大批量图片进行个性化的重命名、尺寸裁剪等。相对于前述图像自动识别/分类、图文转换、图文翻译等需求,这些个性化的批量处理需求原理简单,实现起来相对容易。为避免资源浪费,用户通常编写自定义的批处理工具,将其接入已有的图像自动识别/分类引擎、图文转换引擎、图文翻译引擎等。这些自定义的批处理工具执行时就是自定义进程。
3、然而,现有的各种图像自动识别/分类引擎、图文转换引擎、图文翻译引擎,大部分均是通过封装好的客户端、应用程序、小程序、网页工具等形式提供给用户,对用户来说几乎是“黑盒子”的形式。当用户编写的自定义批处理工具接入上述客户端、应用程序、小程序、网页工具后,自定义进程不可避免的会出现异常中断。
4、在出现异常后,现有技术的常规处理方式就是重新启动相应的客户端、应用程序、小程序、网页工具等,以重新激活所述用户编写的自定义批处理工具,自定义批处理进程也从零开始重新执行。
5、发明人发现,自定义进程虽不可避免的会出现异常中断,但是每次中断的位置通常是不一样的(因为如果同一个位置频繁发生中断用户通常可以重点关注该位置并消除该缺陷),如果进程每次都从零开始执行,将导致大量的重复资源浪费,已有的成功执行的部分结果也无法充分利用。
技术实现思路
1、为解决上述技术问题,本发明提出一种自定义进程的补偿方法、处理器与计算机存储介质。
2、在本发明的第一个方面,提出一种自定义进程的补偿方法,所述自定义进程包括至少一个子进程,所述自定义进程的启动依赖于已有的应用服务的启动,当所述应用服务停止时,所述自定义进程被中断。
3、所述自定义进程用于完成所述应用服务框架下的自定义功能,所述自定义功能包括至少一个批处理功能。
4、所述方法包括如下步骤:
5、s110:响应于所述自定义进程的启动,判断所述自定义进程是否是首次启动,如果是,
6、进入步骤s120;否则,进入步骤s130;
7、s120:将所述自定义进程包括的至少一个子进程的输入参数与子进程标识关联后作为预备关联信息保存,执行所述至少一个子进程,进入步骤s140;
8、s130:获取所述自定义进程包含的至少一个子进程的预备关联信息,基于所述预备关联信息获取所述至少一个子进程的输入参数,执行所述至少一个子进程,进入步骤s140;
9、s140:判断所述至少一个子进程的输出结果是否被持久化保存;
10、如果是,删除所述至少一个子进程对应的预备关联信息;
11、如果否,则判断所述至少一个子进程对应的自定义进程映射的应用服务是否重启;
12、如果是,则响应于所述应用服务重启,重新启动所述自定义进程,返回步骤s110。
13、在本发明的第二个方面,提出一种自定义进程的补偿方法,所述自定义进程包括第一子进程和第二子进程。所述第二子进程是所述第一子进程执行成功后执行的后续子进程。
14、所述方法包括如下步骤:
15、s210:响应于所述自定义进程的启动,判断所述自定义进程是否是首次启动,如果是,
16、进入步骤s220;否则,进入步骤s230;
17、s220:启动所述第一子进程,将所述第一子进程的第一输入参数与第一子进程标识关联后作为第一预备关联信息保存,执行所述第一子进程,进入步骤s240;
18、s230:判断是否存在所述第一子进程的输出结果的持久化存储结果;
19、如果存在,则进入步骤s250;
20、如果不存在,获取所述第一子进程的第一预备关联信息,基于所述第一预备关联信息获取所述至少第一子进程的第一输入参数,执行所述第一子进程,进入步骤s240;
21、s240:判断所述第一子进程的输出结果是否被持久化保存;
22、如果是,删除所述第一子进程对应的第一预备关联信息,进入步骤s250;
23、如果否,则判断所述第一子进程对应的自定义进程映射的应用服务是否重启;
24、如果是,则响应于所述应用服务重启,重新启动所述自定义进程,返回步骤s210;
25、s250:启动所述第二子进程,将所述第二子进程的第二输入参数与第二子进程标识关联后作为第二预备关联信息保存,执行所述第二子进程。
26、在所述步骤s250之后,所述方法还包括:
27、判断所述第二子进程的输出结果是否被持久化保存;
28、如果是,则删除所述第二子进程对应的第二预备关联信息以及所述第一子进程的输出结果的持久化存储结果。
29、在本发明的第三个方面,提供一种自定义进程的补偿装置,所述补偿装置包括如下执行单元:
30、自定义进程启动单元,所述自定义进程启动单元用于启动自定义进程;所述自定义进程包含至少一个子进程;
31、第一启动判断单元,所述启动判断单元用于判断所述自定义进程是否为首次启动;
32、预备关联信息存储单元,所述预备关联信息存储单元用于当所述启动判断单元判断所述自定义进程为首次启动时,将所述自定义进程包括的至少一个子进程的输入参数与子进程标识关联后作为预备关联信息保存;
33、子进程执行单元,用于执行所述至少一个子进程;
34、持久化存储单元,所述持久化单元用于持久化存储所述至少一个子进程的输出结果;
35、第二持久化存储判断单元,所述第二持久化存储判断单元用于判断所述至少一个子进程的输出结果是否被持久化保存;
36、删除单元,所述删除单元用于删除所述预备关联信息存储单元存储的至少一个预备关联信息;
37、其中,所述自定义进程用于完成自定义功能,所述自定义功能包括至少一个批处理功能。
38、所述装置与至少一个应用服务通信,所述自定义进程启动单元响应于所述应用服务的启动而启动所述自定义进程;所述自定义进程用于完成所述应用服务框架下的自定义功能。
39、在本发明的第四个方面,提供一种自定义进程的补偿处理器,所述自定义进程包括第一子进程和第二子进程,所述补偿处理器被配置为执行如下操作:
40、当所述第一子进程为首次启动时,将所述第一子进程的第一输入参数与第一子进程标识关联后作为第一预备关联信息保存,执行所述第一子进程;
41、当所述第一子进程为非首次启动时,执行如下指令s1-s2:
42、s1:若存在所述第一子进程的输出结果的持久化存储结果,则启动所述第二子进程,将所述第二子进程的第二输入参数与第二子进程标识关联后作为第二预备关联信息保存,执行所述第二子进程;
43、s2:若不存在所述第一子进程的输出结果的持久化存储结果,则获取所述第一子进程的第一预备关联信息,基于所述第一预备关联信息获取所述至少第一子进程的第一输入参数,执行所述第一子进程;
44、在执行所述第一子进程之后,若所述第一子进程的输出结果被持久化保存,则删除所述第一子进程对应的第一预备关联信息;
45、在执行所述第一子进程之后,若所述第一子进程的输出结果未被持久化保存,则判断所述第一子进程对应的自定义进程映射的应用服务是否重启,如果是,则响应于所述应用服务重启,重新启动所述第一子进程。
46、在本发明的第五个方面,提供一种计算机可读存储介质,所述存储介质上存储有计算机可执行程序指令,通过处理器执行所述可执行程序指令,前述第一个方面或者第二个方面所述的一种自定义进程的补偿方法被执行。
47、本发明的技术方案,通过自定义进程首次启动时将所述自定义进程包括的至少一个子进程的输入参数与子进程标识关联后作为预备关联信息保存,再执行所述至少一个子进程,能够确保后续自定义进程由于异常发生中断重启后,获取所述自定义进程包含的至少一个子进程的预备关联信息,基于所述预备关联信息获取所述至少一个子进程的输入参数,完成所述子进程的参数补偿后,再执行所述至少一个子进程,从而避免每次都从零开始执行自定义进程,提到了自定义进程执行的效率,避免资源浪费。
48、本发明的进一步优点将结合说明书附图在具体实施例部分进一步详细体现。