mirror of
https://github.com/truewhile/MeBox.git
synced 2026-10-01 03:56:38 +08:00
feat: merge conflict resolution, site management, UI fixes
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
// 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)
|
||||
}
|
||||
Reference in New Issue
Block a user