当前位置:网站首页>解密函数计算异步任务能力之「任务的状态及生命周期管理」
解密函数计算异步任务能力之「任务的状态及生命周期管理」
2022-07-04 18:34:00 【InfoQ】
前言
任务的状态及生命周期的管理
任务的状态管理


- 用户触发一次任务后,任务入队,变更为 Enqueued 状态,并返回触发成功;
- 任务在函数计算后端服务中出队,任务变为 Dequeued 状态;
- 后端会检查任务配置。如果
- 配置了异步消息有效期功能,并且该消息出队时间与入队时间之差已超过有效期,则任务被丢弃,变更为 Expired 状态。任务终止;
- 任务对应的函数已被删除,或创建实例出现错误,则丢弃消息,任务变更为 Invalid 状态;
- 检查后任务正式进入 Running 状态。此时任务已触发实际的执行;
- 任务执行完成后,根据返回会变更为以下几个状态:
- Retrying:用户配置了重试次数(默认为 3),且任务执行失败,这时会进入重试中状态,之后会变更为 Running 状态;
- Failed:任务执行失败,且超过了重试次数。此时会将任务状态改为 Failed;
- Succeeded:任务执行成功。
- 如果在整个状态流转过程用户触发 Cancel,则任务会先变更为 Stopping 状态,并尝试停止任务执行。当任务停止执行成功后,任务进入 Stopped 状态。
任务运行时管理及生命周期

- 创建完成 -> 执行请求阶段:支持 Initializer 功能,支持初始化实例操作。用户可以配置诸如全局变量、连接池初始化等相关操作;
- 执行中 -> 执行完成后 Pause 实例:支持 PreFreeze 接口,支持在函数 Pause 实例前执行用户侧的自定义逻辑;
- 执行中 -> 外部 cancel:函数计算会强制 Restart 用户实例,在 Restart 前支持 PreStop 接口。用户可以配置优雅停止的相关逻辑,以便支持 Cancel 时的自定义行为;
- 完成后 Pause -> 销毁实例:当一段时间没有请求后,函数计算将销毁实例。此时会调用 PreStop 接口,用户可以配置销毁容器的行为(如关闭连接池等)。

任务的停止操作
import fc "github.com/aliyun/fc-go-sdk"
func CancelJob() {
stopInput := fc.NewStopStatefulAsyncInvocationInput("ServiceName", "FunctionName", "TaskUUID")
output, err := fcClient.StopStatefulAsyncInvocation(stopInput)
...
}
总结


边栏推荐
- Swagger突然发癫
- Shell programming core technology "I"
- 92. (cesium chapter) cesium building layering
- Siemens HMI download prompts lack of panel image solution
- Introduction to polyfit software
- 1003 Emergency(25 分)(PAT甲级)
- 1002. A+B for Polynomials (25)(PAT甲级)
- kotlin 基本使用
- Niuke Xiaobai month race 7 F question
- 黑马程序员-软件测试--07阶段2-linux和数据库-09-24-linux命令学习步骤,通配符,绝对路径,相对路径,文件和目录常用命令,文件内容相关操作,查看日志文件,ping命令使用,
猜你喜欢
在线文本行固定长度填充工具
牛客小白月赛7 谁是神箭手
Hough transform Hough transform principle
BCG 使用之CBCGPTabWnd控件(相当于MFC TabControl)
Comment utiliser async awati asynchrone Task Handling au lieu de backgroundworker?
联想首次详解绿色智城数字孪生平台 破解城市双碳升级难点
PointNeXt:通过改进的模型训练和缩放策略审视PointNet++
做社交媒体营销应该注意些什么?Shopline卖家的成功秘笈在这里!
The explain statement in MySQL queries whether SQL is indexed, and several types in extra collate and summarize
Siemens HMI download prompts lack of panel image solution
随机推荐
偏移量函数及开窗函数
如何使用Async-Awati异步任務處理代替BackgroundWorker?
PointNeXt:通过改进的模型训练和缩放策略审视PointNet++
反射(一)
Chrome开发工具:VMxxx文件是什么鬼
kotlin 继承
明明的随机数
Functional interface
YOLOv5s-ShuffleNetV2
FPGA时序约束分享01_四大步骤简述
mysql中explain语句查询sql是否走索引,extra中的几种类型整理汇总
勾股数规律(任意三个数能够满足勾股定理需要满足的条件)
Educational Codeforces Round 22 E. Army Creation
kotlin 基本数据类型
1008 Elevator(20 分)(PAT甲级)
QT realizes interface sliding switching effect
黑马程序员-软件测试--08阶段2-linux和数据库-23-30-进程端口相关,修改文件权限,端口号信息的获取,程序和进程相关操作,linux命令案例
公司要上监控,Zabbix 和 Prometheus 怎么选?这么选准没错!
Utilisation de la barre de progression cbcggprogressdlgctrl utilisée par BCG
HDU 6440 2018 Chinese college student program design network competition