Files
taskq/ui/index.html
hupeh 1f9f1cab53 feat: 添加监控仪表盘
- 新增 Lit.js 组件化 UI (ui/ 目录)
  - tasks-chart: 带十字准星和拖拽选择的图表
  - queue-table: 队列列表,支持暂停/恢复
  - queue-modal: 队列详情弹窗,支持任务重试
  - time-range-picker: Prometheus 风格时间选择器
  - help-tooltip: 可复用的提示组件

- HTTPHandler 功能
  - SSE 实时推送 (stats + queues)
  - 队列暂停/恢复 API
  - 任务重试 API
  - 时间范围查询 API

- Inspector 改进
  - Prometheus 风格单表存储
  - 集成到 Start/Stop 生命周期
  - 新增 PauseQueue/UnpauseQueue/RunTask 方法

- 代码重构
  - Start 函数拆分为小函数
  - 优雅关闭流程优化

- 其他
  - 忽略 SQLite 数据库文件
  - example 添加延迟/定点任务示例
2025-12-09 19:58:18 +08:00

64 lines
2.1 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TaskQ Monitor</title>
<script type="importmap">
{
"imports": {
"lit": "https://cdn.jsdelivr.net/npm/lit@3/+esm",
"lit/": "https://cdn.jsdelivr.net/npm/lit@3/",
"chart.js": "https://cdn.jsdelivr.net/npm/chart.js@4/+esm"
}
}
</script>
<script type="module" src="{{.RootPath}}/static/app.js"></script>
<link rel="stylesheet" href="{{.RootPath}}/static/styles.css">
<style>
.browser-warning {
display: none;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #424242;
color: #e0e0e0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
padding: 40px;
text-align: center;
}
.browser-warning h1 {
color: #ef5350;
margin-bottom: 20px;
}
.browser-warning p {
margin-bottom: 15px;
line-height: 1.6;
}
.browser-warning a {
color: #42a5f5;
}
</style>
</head>
<body>
<div id="browser-warning" class="browser-warning">
<h1>Browser Not Supported</h1>
<p>TaskQ Monitor requires a modern browser with ES Module support.</p>
<p>Please upgrade to one of the following browsers:</p>
<p>
<a href="https://www.google.com/chrome/" target="_blank">Chrome 61+</a> |
<a href="https://www.mozilla.org/firefox/" target="_blank">Firefox 60+</a> |
<a href="https://www.apple.com/safari/" target="_blank">Safari 11+</a> |
<a href="https://www.microsoft.com/edge" target="_blank">Edge 79+</a>
</p>
</div>
<taskq-app root-path="{{.RootPath}}"></taskq-app>
<script nomodule>
document.getElementById('browser-warning').style.display = 'block';
document.querySelector('taskq-app').style.display = 'none';
</script>
</body>
</html>