mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-01-27 21:58:43 +08:00
118 lines
2.4 KiB
Go
118 lines
2.4 KiB
Go
package tcpserver
|
|
|
|
import (
|
|
"context"
|
|
"github.com/gogf/gf/v2/errors/gerror"
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
"hotgo/internal/consts"
|
|
"hotgo/internal/model/input/msgin"
|
|
)
|
|
|
|
// CronDelete 删除任务
|
|
func (s *sTCPServer) CronDelete(ctx context.Context, in *msgin.CronDelete) (err error) {
|
|
clients := s.serv.GetGroupClients(consts.TCPClientGroupCron)
|
|
if len(clients) == 0 {
|
|
err = gerror.New("没有在线的定时任务服务")
|
|
return
|
|
}
|
|
|
|
for _, client := range clients {
|
|
res, err := s.serv.RpcRequest(ctx, client, in)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
var resp = new(msgin.ResponseCronDelete)
|
|
if err = gconv.Scan(res, &resp); err != nil {
|
|
return err
|
|
}
|
|
|
|
if err = resp.GetError(); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// CronEdit 编辑任务
|
|
func (s *sTCPServer) CronEdit(ctx context.Context, in *msgin.CronEdit) (err error) {
|
|
clients := s.serv.GetGroupClients(consts.TCPClientGroupCron)
|
|
if len(clients) == 0 {
|
|
err = gerror.New("没有在线的定时任务服务")
|
|
return
|
|
}
|
|
|
|
for _, client := range clients {
|
|
res, err := s.serv.RpcRequest(ctx, client, in)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
var resp = new(msgin.ResponseCronEdit)
|
|
if err = gconv.Scan(res, &resp); err != nil {
|
|
return err
|
|
}
|
|
|
|
if err = resp.GetError(); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// CronStatus 修改任务状态
|
|
func (s *sTCPServer) CronStatus(ctx context.Context, in *msgin.CronStatus) (err error) {
|
|
clients := s.serv.GetGroupClients(consts.TCPClientGroupCron)
|
|
if len(clients) == 0 {
|
|
err = gerror.New("没有在线的定时任务服务")
|
|
return
|
|
}
|
|
|
|
for _, client := range clients {
|
|
res, err := s.serv.RpcRequest(ctx, client, in)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
var resp = new(msgin.ResponseCronStatus)
|
|
if err = gconv.Scan(res, &resp); err != nil {
|
|
return err
|
|
}
|
|
|
|
if err = resp.GetError(); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// CronOnlineExec 执行一次任务
|
|
func (s *sTCPServer) CronOnlineExec(ctx context.Context, in *msgin.CronOnlineExec) (err error) {
|
|
clients := s.serv.GetGroupClients(consts.TCPClientGroupCron)
|
|
if len(clients) == 0 {
|
|
err = gerror.New("没有在线的定时任务服务")
|
|
return
|
|
}
|
|
|
|
for _, client := range clients {
|
|
res, err := s.serv.RpcRequest(ctx, client, in)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
var resp = new(msgin.ResponseCronOnlineExec)
|
|
if err = gconv.Scan(res, &resp); err != nil {
|
|
return err
|
|
}
|
|
|
|
if err = resp.GetError(); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return
|
|
}
|