当前位置:网站首页>解密函数计算异步任务能力之「任务的状态及生命周期管理」
解密函数计算异步任务能力之「任务的状态及生命周期管理」
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)
...
}
总结
边栏推荐
- 多表操作-内连接查询
- 92.(cesium篇)cesium楼栋分层
- English语法_名词 - 使用
- 1009 Product of Polynomials(25 分)(PAT甲级)
- JVM系列之对象的创建
- Euler function
- 黑马程序员-软件测试--07阶段2-linux和数据库-09-24-linux命令学习步骤,通配符,绝对路径,相对路径,文件和目录常用命令,文件内容相关操作,查看日志文件,ping命令使用,
- 黑马程序员-软件测试--08阶段2-linux和数据库-23-30-进程端口相关,修改文件权限,端口号信息的获取,程序和进程相关操作,linux命令案例
- Swagger suddenly went crazy
- Detailed explanation of the binary processing function threshold() of opencv
猜你喜欢
线上数据库迁移的几种方法
在线文本行固定长度填充工具
C # use stopwatch to measure the running time of the program
C# 使用StopWatch测量程序运行时间
西门子HMI下载时提示缺少面板映像解决方案
JVM系列之对象的创建
What should we pay attention to when doing social media marketing? Here is the success secret of shopline sellers!
Hough Transform 霍夫变换原理
Some thoughts on whether the judgment point is located in the contour
C语言-入门-基础-语法-流程控制(七)
随机推荐
YOLOv5s-ShuffleNetV2
公司要上监控,Zabbix 和 Prometheus 怎么选?这么选准没错!
FPGA timing constraint sharing 01_ Brief description of the four steps
《工作、消费主义和新穷人》的微信读书笔记
Kotlin classes and objects
@Data source connection pool exhaustion caused by transactional abuse
双冒号作用运算符以及命名空间详解
Is it safe to open an account at Great Wall Securities? How to open an account when buying stocks
Siemens HMI download prompts lack of panel image solution
Shell programming core technology "three"
Multi table operation - external connection query
如何使用Async-Awati异步任務處理代替BackgroundWorker?
牛客小白月赛7 谁是神箭手
如何使用Async-Awati异步任务处理代替BackgroundWorker?
FTP, SFTP file transfer
反射(一)
Crawler (6) - Web page data parsing (2) | the use of beautifulsoup4 in Crawlers
在线文本行固定长度填充工具
Pytorch学习(四)
C语言-入门-基础-语法-流程控制(七)