* fix:未导入unicode包 * feat:图片异步转换 * feat:添加R2支持 * feat:新增文件管理 * fix:修复错误信息双写导致响应异常 * chore:渠道列表中添加快捷启用停止按钮 * fix:修复模型异常终端导致报错的问题 * improve:优化无可用渠道的日志打印,减少日志污染 * fix:在线体验出错缺少提示信息 * fix:修复日志库问题,只有请求日志保存到独立的库中 * feat:新增阿里图片模型说明文档 * fix:阿里千问图片生成 * fix:修复图片异步控制无效问题 * improve:优化文件展示,支持缩略图查看 * feat:实时监控中添加图片异步转换池状态信息 * improve:优化在线体验页面布局 * fix:修复异步任务状态显示异常问题 * feat:图片异步任务停止时等待任务完成后再退出程序 * chore:调整存储路径 --------- Co-authored-by: qian <wuchengqian5@163.com> Co-authored-by: chengqian <wuchengqian@kkidc.com>
36 lines
1.9 KiB
Go
36 lines
1.9 KiB
Go
package monitor
|
||
|
||
// SyncImagePoolSnapshot 是同步图片「异步化」worker 池的一次性状态快照。
|
||
// 由 internal/logic/task 在启动 worker 池时通过 RegisterSyncImagePoolProvider 注入取数函数,
|
||
// monitor 反向持有该函数即可,避免 monitor → task 的导入环(task 已 import monitor)。
|
||
type SyncImagePoolSnapshot struct {
|
||
WorkerTotal int `json:"worker_total"` // 池大小(固定)
|
||
WorkerBusy int `json:"worker_busy"` // 忙碌 worker 数(瞬时)
|
||
QueueDepth int `json:"queue_depth"` // 当前排队深度
|
||
QueueCap int `json:"queue_cap"` // 队列容量
|
||
Enqueued int64 `json:"enqueued"` // 累计入队成功
|
||
Rejected int64 `json:"rejected"` // 累计拒绝(队列满 → 429 退款)
|
||
Succeeded int64 `json:"succeeded"` // 累计 worker 处理成功
|
||
Failed int64 `json:"failed"` // 累计 worker 处理失败
|
||
ChannelInflight map[int64]int `json:"channel_inflight"` // 每渠道在途数(层② per-channel 容量)
|
||
Enabled bool `json:"enabled"` // 池是否已启动(未注册 provider 时 false)
|
||
}
|
||
|
||
// syncImagePoolProvider 由 task 包在启动 worker 池时注册。
|
||
var syncImagePoolProvider func() SyncImagePoolSnapshot
|
||
|
||
// RegisterSyncImagePoolProvider 注册同步图片 worker 池状态取数函数。
|
||
func RegisterSyncImagePoolProvider(f func() SyncImagePoolSnapshot) {
|
||
syncImagePoolProvider = f
|
||
}
|
||
|
||
// GetSyncImagePoolSnapshot 返回当前 worker 池状态;未注册(池未启动)时返回 Enabled=false。
|
||
func GetSyncImagePoolSnapshot() SyncImagePoolSnapshot {
|
||
if syncImagePoolProvider == nil {
|
||
return SyncImagePoolSnapshot{Enabled: false}
|
||
}
|
||
s := syncImagePoolProvider()
|
||
s.Enabled = true
|
||
return s
|
||
}
|