You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

delayed_job进程终止/服务器退役时执行中作业的状态及解锁方案问询

Delayed Job 异常场景下的作业状态与处理方案

1. delayed_job进程被杀死时的作业状态

  • 正在执行的作业会立刻终止,被标记为失败,last_error字段会记录终止相关的错误日志。
  • 默认会进入重试队列,按照配置的重试次数循环重试,达到重试上限后停止重试。

2. 服务器退役时的作业处理

  • 若退役前delayed_job进程已正常停止:未执行的作业会留在队列中,由集群内其他正常运行的delayed_job进程拾取执行。
  • 若退役时进程仍在运行:正在执行的作业会和进程被杀死的情况一致,标记失败后进入重试流程;未执行的作业则等待其他进程处理。

3. 作业未完成却锁定的情况与解决办法

不会永久卡住,因为delayed_job自带锁定超时机制:

  • 被拾取的作业会设置locked_at和locked_by字段,超过默认30分钟的锁定时间后,其他进程会判定该作业失效,自动解锁并重新拾取执行。

额外优化方案:

  • 根据作业实际执行时长,调整DELAYED_JOB_LOCK_TIMEOUT配置,适配不同类型的作业,避免短作业被误解锁或长作业超时过久。
  • 特殊场景下手动解锁:直接修改数据库中对应作业的locked_at和locked_by字段为空,解除锁定后作业会被重新执行。

内容的提问来源于stack exchange,提问作者Lucas D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 02:29:50