mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-29 03:26:37 +08:00
48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
// Package handler — 定时任务管理 HTTP 端点。
|
|
package handler
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"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")
|
|
ctx := c.Request.Context()
|
|
|
|
if err := h.svc.Scheduler.RunNow(ctx, name); err != nil {
|
|
Error(c, http.StatusBadRequest, ErrInternal, "任务执行失败: "+err.Error())
|
|
return
|
|
}
|
|
|
|
SuccessWithMessage(c, "任务已触发执行", nil)
|
|
}
|
|
|
|
// GetStatus 返回调度器运行状态。
|
|
func (h *SchedulerHandler) GetStatus(c *gin.Context) {
|
|
status := h.svc.Scheduler.Status()
|
|
Success(c, status)
|
|
}
|