mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-02-02 18:28:41 +08:00
118 lines
2.8 KiB
Go
118 lines
2.8 KiB
Go
// Package tcpserver
|
|
// @Link https://github.com/bufanyun/hotgo
|
|
// @Copyright Copyright (c) 2023 HotGo CLI
|
|
// @Author Ms <133814250@qq.com>
|
|
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
|
|
package tcpserver
|
|
|
|
import (
|
|
"context"
|
|
"github.com/gogf/gf/v2/errors/gerror"
|
|
"hotgo/api/servmsg"
|
|
"hotgo/internal/consts"
|
|
"hotgo/internal/library/cron"
|
|
)
|
|
|
|
// CronDelete 删除任务
|
|
func (s *sTCPServer) CronDelete(ctx context.Context, in *servmsg.CronDeleteReq) (err error) {
|
|
clients := s.serv.GetGroupClients(consts.LicenseGroupCron)
|
|
if len(clients) == 0 {
|
|
err = gerror.New("没有在线的定时任务服务")
|
|
return
|
|
}
|
|
|
|
for _, client := range clients {
|
|
var res servmsg.CronDeleteRes
|
|
if err = s.serv.RequestScan(ctx, client, in, &res); err != nil {
|
|
return
|
|
}
|
|
|
|
if err = res.GetError(); err != nil {
|
|
return
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
// CronEdit 编辑任务
|
|
func (s *sTCPServer) CronEdit(ctx context.Context, in *servmsg.CronEditReq) (err error) {
|
|
clients := s.serv.GetGroupClients(consts.LicenseGroupCron)
|
|
if len(clients) == 0 {
|
|
err = gerror.New("没有在线的定时任务服务")
|
|
return
|
|
}
|
|
|
|
for _, client := range clients {
|
|
var res servmsg.CronEditRes
|
|
if err = s.serv.RequestScan(ctx, client, in, &res); err != nil {
|
|
return
|
|
}
|
|
|
|
if err = res.GetError(); err != nil {
|
|
return
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
// CronStatus 修改任务状态
|
|
func (s *sTCPServer) CronStatus(ctx context.Context, in *servmsg.CronStatusReq) (err error) {
|
|
clients := s.serv.GetGroupClients(consts.LicenseGroupCron)
|
|
if len(clients) == 0 {
|
|
err = gerror.New("没有在线的定时任务服务")
|
|
return
|
|
}
|
|
|
|
for _, client := range clients {
|
|
var res servmsg.CronStatusRes
|
|
if err = s.serv.RequestScan(ctx, client, in, &res); err != nil {
|
|
return
|
|
}
|
|
|
|
if err = res.GetError(); err != nil {
|
|
return
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
// CronOnlineExec 执行一次任务
|
|
func (s *sTCPServer) CronOnlineExec(ctx context.Context, in *servmsg.CronOnlineExecReq) (err error) {
|
|
clients := s.serv.GetGroupClients(consts.LicenseGroupCron)
|
|
if len(clients) == 0 {
|
|
err = gerror.New("没有在线的定时任务服务")
|
|
return
|
|
}
|
|
|
|
for _, client := range clients {
|
|
var res servmsg.CronOnlineExecRes
|
|
if err = s.serv.RequestScan(ctx, client, in, &res); err != nil {
|
|
return
|
|
}
|
|
|
|
if err = res.GetError(); err != nil {
|
|
return
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
// DispatchLog 查看调度日志
|
|
func (s *sTCPServer) DispatchLog(ctx context.Context, in *servmsg.CronDispatchLogReq) (log *cron.Log, err error) {
|
|
clients := s.serv.GetGroupClients(consts.LicenseGroupCron)
|
|
if len(clients) == 0 {
|
|
err = gerror.New("没有在线的定时任务服务")
|
|
return
|
|
}
|
|
|
|
var res servmsg.CronDispatchLogRes
|
|
if err = s.serv.RequestScan(ctx, clients[0], in, &res); err != nil {
|
|
return
|
|
}
|
|
|
|
if err = res.GetError(); err != nil {
|
|
return
|
|
}
|
|
return res.Log, nil
|
|
}
|