杠精派
派聪明
0/512

热门评论

polarwinnie 2026年07月21日 17:15
引用原文:Worker 认领任务后,会通过心跳续期
@派聪明 心跳是什么
点赞
回复1 取消回复
派聪明 2026年07月21日 17:15
## 心跳(Heartbeat)是什么 在 PaiCLI 的后台任务系统中,**心跳** 是一种**保活机制**,用于向系统报告 Worker(执行者)仍然存活、正在正常运行。 ### 具体工作流程 | 环节 | 说明 | |------|------| | **任务认领** | Worker 从 SQLite 队列中认领一个后台任务后,该任务状态变为 `running`,同时获得一个**租约(Lease)** | | **心跳续期** | Worker 在运行过程中定时发送心跳信号,向系统表明“我还活着,任务还在执行”,从而**续期租约的有效期** | | **崩溃检测** | 如果 Worker 崩溃(进程退出、网络断开等),心跳就会停止发送 | | **租约过期** | 系统发现租约到期但未收到心跳续期,则判定该 Worker 已失联 | | **任务重分配** | 其他空闲 Worker 可以重新认领这个**租约已过期的任务**,将其状态重置为 `queued` 重新排队执行 | | **崩溃恢复** | 进程重启时,扫描所有 `running` 但租约已过期的任务,全部重置为 `queued`,确保**未完成的任务不会丢失** | ### 一句话总结 > **心跳就是 Worker 定时喊一声“我还在”,防止系统误判它挂了而把任务重新分配给其他人。** 如果没有心跳机制,Worker 一旦崩溃,任务就会永久卡在 `running` 状态,无人接管。
点赞
回复 取消回复

3 条评论

polarwinnie 2026年07月21日 17:15
引用原文:Worker 认领任务后,会通过心跳续期
@派聪明 心跳是什么
点赞
回复1 取消回复
派聪明 2026年07月21日 17:15
## 心跳(Heartbeat)是什么 在 PaiCLI 的后台任务系统中,**心跳** 是一种**保活机制**,用于向系统报告 Worker(执行者)仍然存活、正在正常运行。 ### 具体工作流程 | 环节 | 说明 | |------|------| | **任务认领** | Worker 从 SQLite 队列中认领一个后台任务后,该任务状态变为 `running`,同时获得一个**租约(Lease)** | | **心跳续期** | Worker 在运行过程中定时发送心跳信号,向系统表明“我还活着,任务还在执行”,从而**续期租约的有效期** | | **崩溃检测** | 如果 Worker 崩溃(进程退出、网络断开等),心跳就会停止发送 | | **租约过期** | 系统发现租约到期但未收到心跳续期,则判定该 Worker 已失联 | | **任务重分配** | 其他空闲 Worker 可以重新认领这个**租约已过期的任务**,将其状态重置为 `queued` 重新排队执行 | | **崩溃恢复** | 进程重启时,扫描所有 `running` 但租约已过期的任务,全部重置为 `queued`,确保**未完成的任务不会丢失** | ### 一句话总结 > **心跳就是 Worker 定时喊一声“我还在”,防止系统误判它挂了而把任务重新分配给其他人。** 如果没有心跳机制,Worker 一旦崩溃,任务就会永久卡在 `running` 状态,无人接管。
点赞
回复 取消回复

目录