当前位置:网站首页>解密函数计算异步任务能力之「任务的状态及生命周期管理」
解密函数计算异步任务能力之「任务的状态及生命周期管理」
2022-07-06 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)
...
}
总结
边栏推荐
- Cat recycling bin
- AcWing 361. Sightseeing cow problem solution (SPFA seeking positive ring)
- ROS学习(23)action通信机制
- 红外相机:巨哥红外MAG32产品介绍
- C语言【23道】经典面试题【下】
- Mongodb checks whether the table is imported successfully
- 开发中对集合里面的数据根据属性进行合并数量时犯的错误
- Blackfly S USB3工业相机:缓冲区处理
- Batch delete data in SQL - set in entity
- Blackfly s usb3 industrial camera: buffer processing
猜你喜欢
百度飞将BMN时序动作定位框架 | 数据准备与训练指南 (上)
ROS学习(26)动态参数配置
CISP-PTE之命令注入篇
Cat recycling bin
centos8安裝mysql報錯:The GPG keys listed for the “MySQL 8.0 Community Server“ repository are already ins
centos8 用yum 安装MySQL 8.0.x
The cradle of eternity
Time synchronization of livox lidar hardware -- PPS method
C语言关于链表的代码看不懂?一篇文章让你拿捏二级指针并深入理解函数参数列表中传参的多种形式
FLIR blackfly s industrial camera: explanation and configuration of color correction and code setting method
随机推荐
Compile command line terminal swift
Add PDF Title floating window
ROS学习(21)机器人SLAM功能包——orbslam的安装与测试
将截断字符串或二进制数据
WCF Foundation
JS how to quickly create an array with length n
我如何编码8个小时而不会感到疲倦。
The use of video in the wiper component causes full screen dislocation
Set WordPress pseudo static connection (no pagoda)
Centos8 install MySQL 8.0 using yum x
MySQL execution process and sequence
ROS学习(25)rviz plugin插件
ROS learning (22) TF transformation
Scenario practice: quickly build wordpress blog system based on function calculation
Redis configuration class redisconfig
AcWing 1141. LAN problem solving (kruskalkruskal finding the minimum spanning tree)
454 Baidu Mianjing 1
刨析《C语言》【进阶】付费知识【完结】
处理streamlit库上传的图片文件
CISP-PTE之命令注入篇