当前位置:网站首页>解密函数计算异步任务能力之「任务的状态及生命周期管理」
解密函数计算异步任务能力之「任务的状态及生命周期管理」
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)
...
}
总结
边栏推荐
- PartyDAO如何在1年内把一篇推文变成了2亿美金的产品DAO
- C语言关于链表的代码看不懂?一篇文章让你拿捏二级指针并深入理解函数参数列表中传参的多种形式
- 糊涂工具类(hutool)post请求设置body参数为json数据
- 初识MySQL
- Analyze "C language" [advanced] paid knowledge [II]
- Scenario practice: quickly build wordpress blog system based on function calculation
- Add PDF Title floating window
- 454 Baidu Mianjing 1
- Baidu flying general BMN timing action positioning framework | data preparation and training guide (Part 1)
- Unicode string converted to Chinese character decodeunicode utils (tool class II)
猜你喜欢

ROS学习(26)动态参数配置

ROS学习(25)rviz plugin插件

454 Baidu Mianjing 1

Blackfly s usb3 industrial camera: buffer processing

JVM 内存模型

Shell script quickly counts the number of lines of project code

Flir Blackfly S 工业相机:配置多个摄像头进行同步拍摄

Centros 8 installation MySQL Error: The gpg Keys listed for the "MySQL 8.0 Community Server" repository are already ins

ROS learning (XX) robot slam function package -- installation and testing of rgbdslam

FLIR blackfly s industrial camera: auto exposure configuration and code
随机推荐
Zabbix 5.0:通过LLD方式自动化监控阿里云RDS
FLIR blackfly s industrial camera: configure multiple cameras for synchronous shooting
Basic introduction and use of dvajs
ROS learning (XIX) robot slam function package cartographer
传感器:土壤湿度传感器(XH-M214)介绍及stm32驱动代码
Blue Bridge Cup 2022 13th provincial competition real topic - block painting
ZOJ problem set – 2563 long dominoes [e.g. pressure DP]
454 Baidu Mianjing 1
Right mouse button customization
Ros Learning (23) Action Communication Mechanism
The GPG keys listed for the "MySQL 8.0 community server" repository are already ins
2022/0524/bookstrap
STM32F4---通用定时器更新中断
C language [23] classic interview questions [Part 2]
RC振荡器和晶体振荡器简介
String to date object
centos8安装mysql报错:The GPG keys listed for the “MySQL 8.0 Community Server“ repository are already ins
Domestic images of various languages, software and systems. It is enough to collect this warehouse: Thanks mirror
ROS学习(25)rviz plugin插件
ROS学习(21)机器人SLAM功能包——orbslam的安装与测试