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

Shopware 6.5计划任务失败排查:enqueue及dead_messages表消失问题

Shopware 6.5 计划任务失败排查指南

Shopware 6.5已完全弃用Enqueue组件,改用Symfony Messenger作为默认消息队列系统,所以原dead_messages表被移除是正常变更,失败任务现在由Messenger统一管理。以下是排查任务失败原因的具体方法:

1. 数据库直接查询失败任务详情

失败的任务会存储在messenger_messages表中,其中error字段直接记录了错误信息和堆栈跟踪,failed_at字段标记任务失败时间。可以通过SQL快速查询:

SELECT id, error, failed_at, message FROM messenger_messages WHERE failed_at IS NOT NULL;

2. 查看日志文件

默认情况下,任务失败的详细日志会输出到Shopware的日志文件中:

  • 生产环境:var/log/prod.log
  • 开发环境:var/log/dev.log
    搜索包含messenger、Failed to handle message或具体任务类名的日志条目,能找到完整的错误上下文和堆栈信息。

3. 使用Symfony Messenger命令行工具

Shopware集成了Messenger的命令,可直接在终端操作失败任务:

  • 列出所有失败任务:
    bin/console messenger:failed:show
    
  • 查看单个任务的详细错误信息(替换<message-id>为实际任务ID):
    bin/console messenger:failed:show <message-id>
    
  • 重试单个失败任务,执行时会再次输出错误细节(若重试仍失败):
    bin/console messenger:failed:retry <message-id>
    

Shopware 6.5 计划任务与Messenger的运作逻辑

  • Shopware的后台计划任务会被封装为Messenger消息,发送到对应队列中执行
  • 默认配置下,任务失败后会自动重试3次(可通过messenger.yaml的retry_strategy调整),重试耗尽后标记为失败并存入messenger_messages表
  • 若需自定义日志行为或重试策略,可修改config/packages/messenger.yaml,例如调整重试次数、添加专属日志处理器等,基础默认配置已满足日常排查需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:28:24