mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-29 11:36:36 +08:00
43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
// Package handler — 定时任务管理 HTTP 端点。
|
|
package handler
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"go.uber.org/zap"
|
|
|
|
"github.com/ShukeBta/MediaStationGo/internal/service"
|
|
)
|
|
|
|
// SchedulerHandler 处理定时任务的查询和管理操作。
|
|
type SchedulerHandler struct {
|
|
svc *service.Container
|
|
log *zap.Logger
|
|
}
|
|
|
|
// NewSchedulerHandler 创建定时任务处理器。
|
|
func NewSchedulerHandler(svc *service.Container, log *zap.Logger) *SchedulerHandler {
|
|
return &SchedulerHandler{svc: svc, log: log}
|
|
}
|
|
|
|
// ListTasks 返回所有定时任务列表。
|
|
func (h *SchedulerHandler) ListTasks(c *gin.Context) {
|
|
tasks := h.svc.Scheduler.Status()
|
|
Success(c, tasks)
|
|
}
|
|
|
|
// RunTask 手动触发指定任务。
|
|
func (h *SchedulerHandler) RunTask(c *gin.Context) {
|
|
name := c.Param("id")
|
|
if !triggerSchedulerJob(c, h.svc, name) {
|
|
return
|
|
}
|
|
|
|
SuccessWithMessage(c, "任务已触发后台执行", nil)
|
|
}
|
|
|
|
// GetStatus 返回调度器运行状态。
|
|
func (h *SchedulerHandler) GetStatus(c *gin.Context) {
|
|
status := h.svc.Scheduler.Status()
|
|
Success(c, status)
|
|
}
|