AWS Spot实例被停止重启后是否保留Luigi任务状态?
关于AWS Spot实例+Luigi任务断点续跑的问题解答
问题一:AWS Spot实例被AWS停止后重启是否能从断点继续运行?
- 当你给Spot Fleet设置
InstanceInterruptionBehaviour=Stop后,实例被AWS中断时会进入停止状态而非直接终止。重启该实例时,只要你的Luigi任务把中间数据、断点信息存在EBS根卷或附加的EBS卷上(而非实例临时存储),重启后就能从断点继续执行——因为EBS卷在实例停止-重启过程中会保留所有数据。 - 要是任务数据存在实例自带的临时存储(Instance Store),重启后临时存储会被清空,断点数据丢失,就只能从头跑任务。
问题二:实例重启后是否仍运行Luigi守护进程并保留所有任务状态?
- Luigi守护进程不会自动重启:默认情况下,实例重启后之前运行的Luigi进程会终止,除非你提前把Luigi配置成开机自启服务(比如用systemd编写服务配置,设置开机启动)。
- 任务状态能否保留看存储位置:
- 如果Luigi的任务状态存在EBS卷上的本地文件(比如默认的
~/.luigi/state),重启后文件还在,状态就能完整保留; - 如果你用了外部数据库(比如MySQL、PostgreSQL)存储Luigi状态,实例重启后只要重新连接数据库,就能读取之前的任务状态;
- 要是状态存在实例临时存储,重启后状态数据会丢失,相当于任务状态重置。
- 如果Luigi的任务状态存在EBS卷上的本地文件(比如默认的
内容的提问来源于stack exchange,提问作者simon
相关产品推荐
相关产品推荐

