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

Laravel的Jobs表中reserved_at与available_at字段有什么区别?

这两个是Laravel队列系统默认jobs表的核心字段,具体区别和用途如下:

available_at

这个字段存储的是任务允许被执行的最早时间戳,规则如下:

  • 没有设置延迟的普通任务入队时,该字段值等于任务入队的当前时间,代表入队即可被消费
  • 调用delay()方法设置了延迟执行的任务,该字段值等于「当前时间 + 延迟时长」,队列进程只会拉取available_at ≤ 当前时间的任务

reserved_at

这个字段存储的是任务被队列进程预锁定的时间戳,规则如下:

  • 任务还没有被任何进程拉取时,该字段值为null
  • 当有队列进程匹配到可执行的任务后,会先将该字段更新为当前时间,把任务标记为「已预留」,防止其他进程重复消费同一条任务
  • 如果任务顺利执行完成,会直接从jobs表中删除;如果任务执行失败、或是持有该任务的进程意外崩溃没有上报执行结果,等超出队列配置的retry_after时长后,该预留标记会自动失效,任务会被重新放回队列等待后续重试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:21:02