During the concurrent testing, the debugging page did not display any characters.

用户在 Dify 1.11.0 版本(Docker 部署)中进行并发测试(Concurrent Testing)时,Dify 工作流已成功完成,但调试页面没有任何字符输出。用户上传的截图显示调试页面在执行完成后为空白。

During the concurrent testing, the debugging page did not display any characters.

During the concurrent testing, the debugging page did not display any characters.

快速结论:该报错通常发生在 Dify 自托管(Docker)环境下进行高并发工作流测试时。优先排查 Celery Worker 的并发数设置,默认的并发数(通常为 1)不足以处理并发请求,导致后端已完成工作流但 SSE 流事件未能推送到前端调试页面。

问题场景

用户在 Dify 1.11.0 版本(Docker 部署)中进行并发测试(Concurrent Testing)时,Dify 工作流已成功完成,但调试页面没有任何字符输出。用户上传的截图显示调试页面在执行完成后为空白。

报错原文

During the concurrent testing, the debugging page did not display any characters.

原因分析

这是一个已知的 Celery Worker 并发瓶颈问题。工作流执行通过 Celery 后台任务队列运行,默认并发数为 1。在并发测试期间,产生任务积压,后端虽然完成了工作流,但 SSE(Server-Sent Events)流事件未及时推送至前端,导致调试页面呈现空白。此问题在 Dify 社区讨论(#37214)中已被确认,后续 PR #33105 已将默认 Worker 数从 1 提升至 4 以缓解此瓶颈。

环境排查

  • Dify 版本:1.11.0
  • 部署方式:Self Hosted (Docker)
  • Celery Worker 配置:默认值(通常为 1)
  • 反向代理(如 Nginx):确认是否已配置 SSE 流支持

解决步骤

  1. 增加 Celery Worker 并发数(可优先尝试):

    编辑 .env 文件,添加以下配置之一:

    # 固定并发数
    CELERY_WORKER_CONCURRENCY=10
    
    # 或自动扩缩(适用于持续并发负载)
    CELERY_AUTO_SCALE=true
    CELERY_MAX_WORKERS=15
    CELERY_MIN_WORKERS=5

    然后执行 docker compose restart worker 重启 Worker 容器。

  2. 确保反向代理正确配置 SSE(如使用 Nginx):

    在 Nginx 配置文件中的对应 location 块中添加:

    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_buffering off;
    proxy_cache off;
    proxy_read_timeout 3600s;
    proxy_send_timeout 3600s;

    之后重新加载 Nginx 配置。

验证方法

重新执行并发测试,观察调试页面在工作流完成后是否正常显示输出字符。如果调试页面恢复显示,则问题已解决。若仍为空白,请检查 Celery Worker 日志是否有任务积压或报错。

参考来源

langgenius/dify #38601

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 12344

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注