🚀 简介
在 Dify 项目中,超时参数是系统稳定运行的关键保障。它们就像时间的守门人,确保每个操作都在合理的时间范围内完成,避免系统因长时间等待而卡顿或崩溃。以下是对 .env
文件中各类超时参数的讲解,带你轻松掌握它们的作用!
🌐 API 服务相关超时参数
文件访问超时
- 参数名:
FILES_ACCESS_TIMEOUT
- 默认值:300秒(5分钟)
- 作用:文件访问的“保质期”。超过这个时间,文件访问链接就会失效,就像过期的优惠券一样。
API 请求处理超时
- 参数名:
GUNICORN_TIMEOUT
- 默认值:360秒(6分钟)
- 作用:Gunicorn 服务器处理请求的“耐心值”。如果请求超过这个时间还没处理完,服务器就会说:“抱歉,我等不及了!”
应用执行超时
- 参数名:
APP_MAX_EXECUTION_TIME
- 默认值:1200秒(20分钟)
- 作用:应用程序的“最长表演时间”。超过这个时间,应用就会被强制“下台”。
🛠️ 工具与执行超时参数
API 工具超时
- 连接超时:
API_TOOL_DEFAULT_CONNECT_TIMEOUT
(默认10秒) - 读取超时:
API_TOOL_DEFAULT_READ_TIMEOUT
(默认60秒) - 作用:API 工具的“握手”和“倾听”时间。握手太慢或倾听太久都会被判定为超时。
代码执行超时
- 连接超时:
CODE_EXECUTION_CONNECT_TIMEOUT
(默认10秒) - 读取超时:
CODE_EXECUTION_READ_TIMEOUT
(默认60秒) - 写入超时:
CODE_EXECUTION_WRITE_TIMEOUT
(默认10秒) - 作用:代码执行服务的“三步曲”超时设置,确保代码执行的每个环节都不会拖太久。
工作流执行超时
- 参数名:
WORKFLOW_MAX_EXECUTION_TIME
- 默认值:1200秒(20分钟)
- 作用:工作流的“马拉松时间限制”。超过这个时间,工作流就会被喊停。
插件执行超时
- 最大执行超时:
PLUGIN_MAX_EXECUTION_TIMEOUT
(默认600秒,10分钟) - Python 环境初始化超时:
PLUGIN_PYTHON_ENV_INIT_TIMEOUT
(默认120秒,2分钟) - 作用:插件的“启动”和“运行”时间限制,确保插件不会“拖后腿”。
🔗 网络相关超时参数
SSRF 代理超时
- 总体超时:
SSRF_DEFAULT_TIME_OUT
(默认5秒) - 连接超时:
SSRF_DEFAULT_CONNECT_TIME_OUT
(默认5秒) - 读取超时:
SSRF_DEFAULT_READ_TIME_OUT
(默认5秒) - 写入超时:
SSRF_DEFAULT_WRITE_TIME_OUT
(默认5秒) - 作用:SSRF 代理的“快闪”时间设置,确保请求快速完成,避免被“拖下水”。
🖥️ Web 前端相关超时参数
文本生成超时
- 参数名:
TEXT_GENERATION_TIMEOUT_MS
- 默认值:60000毫秒(60秒)
- 作用:文本生成的“等待时间”。如果超过这个时间还没生成,前端就会提示“生成失败”。
📊 监控与日志超时参数
OpenTelemetry 超时
- 批量导出超时:
OTEL_BATCH_EXPORT_TIMEOUT
(默认10000毫秒,10秒) - 指标导出超时:
OTEL_METRIC_EXPORT_TIMEOUT
(默认30000毫秒,30秒) - 作用:监控数据的“快递时间”。如果超时,监控数据就会“寄丢”。
🔑 认证相关超时参数
访问令牌过期时间
- 参数名:
ACCESS_TOKEN_EXPIRE_MINUTES
- 默认值:60分钟(1小时)
- 作用:访问令牌的“有效期”。过期后,用户需要重新登录。
刷新令牌过期时间
- 参数名:
REFRESH_TOKEN_EXPIRE_DAYS
- 默认值:30天
- 作用:刷新令牌的“长寿命”。用户可以在30天内用它刷新访问令牌。
密码重置令牌过期时间
- 参数名:
RESET_PASSWORD_TOKEN_EXPIRY_MINUTES
- 默认值:5分钟
- 作用:密码重置令牌的“短暂有效期”。用户需要在5分钟内完成密码重置。
🗄️ 数据库和缓存相关超时参数
Redis Sentinel 超时
- 参数名:
REDIS_SENTINEL_SOCKET_TIMEOUT
- 默认值:0.1秒
- 作用:Redis Sentinel 的“闪电战”时间。如果连接超过这个时间还没响应,就会判定为失败。
数据库连接池回收时间
- 参数名:
SQLALCHEMY_POOL_RECYCLE
- 默认值:3600秒(1小时)
- 作用:数据库连接的“换班时间”。每小时刷新一次连接,确保数据库不会“累坏”。
🎉 总结:Dify 项目中的超时参数就像系统中的“时间管家”,确保每个环节都能在合理的时间内完成任务。正确配置这些参数,可以让系统运行得更流畅、更稳定。如果需要调整这些参数,请根据实际需求谨慎操作,避免设置过短或过长的超时时间,以免影响系统性能或功能。