新任务管理系统YYSchedule-介绍-引擎执行机制及结果回收机制

本文详细介绍了任务执行过程中的各种情况及处理方法,并阐述了任务执行成功或失败后的结果回收流程,包括如何处理执行过程中的错误和超时情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:结果回收机制是在下发任务机制之后。

一、引擎的执行

当用户下发了一批任务,这批任务会通过下发任务机制,下发到每个引擎(engine)中并进行执行。

引擎执行任务时,可能会出现如下几种情况:

1、程序顺顺利利地执行成功

2、程序在执行过程中,出现了一些致命的错误,导致程序被强制中断。

3、程序在执行过程中,通过程序自身发现一些错误,错误会导致没有最终结果出现,但不会中断程序的执行。

4、程序执行时间超时,系统强制杀死程序所对应的进程。

 

对于上述4种情况,其中1、3可以通过程序本身在最后返回结果时,报告具体执行状况,而对于2、4来说,就必须在引擎外部增加一个引擎监测器(处在任务节点node中),用于监测引擎的具体执行状况。

因此,上述4种情况将会有如下的处理方法:

1、程序顺顺利利地执行成功             ---------------------------->        引擎正常返回执行结果类

2、程序在执行过程中,出现了一些致命的错误,导致程序被强制中断。    --------------------->   监测器返回含有中断标记的结果类

3、程序在执行过程中,通过程序自身发现一些错误,错误会导致没有最终结果出现,但不会中断程序的执行。    --------->   引擎返回具有出错标记的结果类

4、程序执行时间超时,系统强制杀死程序所对应的进程。       ---------->    监测器返回含有中断标记的结果类

 

具体流程图如下图右侧所示:

结果回收流程图
标题结果回收流程图

 

 

二、结果的回收

任务节点(node)在结果回收模块中会收到引擎亦或者引擎监测模块发送的结果。经过细微地处理后,会将结果发送到resultQueue队列中,然后由控制节点(taskmanager)的结果回收模块进行真正的结果回收。在结果回收后,会将成功的结果发给用户(User),失败的任务发送到失败处理模块中(详见博客“失败回收机制”)。

无论任务在本次执行中成功或失败,结果回收模块都会将其发送到结果状态统计模块中(详见”任务节点检测机制”)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值