logic

package
v0.0.0-...-198ddc3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 22, 2025 License: MIT Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ConfigLogic = new(configLogic)
)
View Source
var (
	EsLogic = new(esLogic)
)
View Source
var FileLogic = new(fileLogic)
View Source
var LogEs = new(logEs)
View Source
var LogSqlite = new(logSqlite)
View Source
var (
	Loghandler = new(loghandler)
)
View Source
var OperationHandle = map[constants.TaskOperation]operationFunc{
	constants.TASK_START: func(data *model.Task, proc *ProcessBase) bool {
		if proc.State.State == 1 {
			log.Logger.Debugw("进程已在运行")
			return false
		}
		go proc.Start()
		return true
	},

	constants.TASK_START_WAIT_DONE: func(data *model.Task, proc *ProcessBase) bool {
		if proc.State.State == 1 {
			log.Logger.Debugw("进程已在运行")
			return false
		}
		if err := proc.Start(); err != nil {
			log.Logger.Debugw("进程启动失败")
			return false
		}
		select {
		case <-proc.StopChan:
			log.Logger.Debugw("进程停止,任务完成")
			return true
		case <-time.After(time.Second * time.Duration(config.CF.TaskTimeout)):
			log.Logger.Errorw("任务超时")
			return false
		}
	},

	constants.TASK_STOP: func(data *model.Task, proc *ProcessBase) bool {
		if proc.State.State != 1 {
			log.Logger.Debugw("进程未在运行")
			return false
		}
		log.Logger.Debugw("异步停止任务")
		proc.State.manualStopFlag = true
		go proc.Kill()
		return true
	},

	constants.TASK_STOP_WAIT_DONE: func(data *model.Task, proc *ProcessBase) bool {
		if proc.State.State != 1 {
			log.Logger.Debugw("进程未在运行")
			return false
		}
		log.Logger.Debugw("停止任务并等待结束")
		proc.State.manualStopFlag = true
		return proc.Kill() == nil
	},
}
View Source
var (
	ProcessCtlLogic = new(processCtlLogic)
)
View Source
var PushLogic = &pushLogic{
	httpClient: &http.Client{
		Transport: http.DefaultTransport,
	},
}
View Source
var TaskLogic = new(taskLogic)

Functions

func InitLog

func InitLog()

func InitLogHandle

func InitLogHandle()

Types

type ConnectInstance

type ConnectInstance interface {
	Write([]byte)
	WriteString(string)
	Cancel()
}

type LogLogic

type LogLogic interface {
	Search(req model.GetLogReq, filterProcessName ...string) model.LogResp
	Insert(log string, processName string, using string, ts int64)
}
var LogLogicImpl LogLogic

type Process

type Process interface {
	ReadCache(ConnectInstance)
	Write(string) error
	WriteBytes([]byte) error

	Start() error
	Type() constants.TerminalType
	SetTerminalSize(int, int)
	// contains filtered or unexported methods
}

type ProcessBase

type ProcessBase struct {
	Process

	Name         string
	Pid          int
	StartCommand []string
	WorkDir      string
	Lock         sync.Mutex
	StopChan     chan struct{}
	Control      struct {
		Controller string
		// contains filtered or unexported fields
	}

	Config struct {
		AutoRestart bool

		PushIds []int
		// contains filtered or unexported fields
	}
	State struct {
		Info  string
		State constants.ProcessState //0 为未运行,1为运作中,2为异常状态
		// contains filtered or unexported fields
	}
	// contains filtered or unexported fields
}

func NewProcessPty

func NewProcessPty(pconfig model.Process) *ProcessBase

func NewProcessStd

func NewProcessStd(pconfig model.Process) *ProcessBase

func (*ProcessBase) AddConn

func (p *ProcessBase) AddConn(user string, c ConnectInstance)

func (*ProcessBase) AddCpuUsage

func (p *ProcessBase) AddCpuUsage(usage float64)

func (*ProcessBase) AddMemUsage

func (p *ProcessBase) AddMemUsage(usage float64)

func (*ProcessBase) AddRecordTime

func (p *ProcessBase) AddRecordTime()

func (*ProcessBase) DeleteConn

func (p *ProcessBase) DeleteConn(user string)

func (*ProcessBase) GetStartTimeFormat

func (p *ProcessBase) GetStartTimeFormat() string

func (*ProcessBase) GetUserList

func (p *ProcessBase) GetUserList() []string

func (*ProcessBase) GetUserString

func (p *ProcessBase) GetUserString() string

func (*ProcessBase) HasWsConn

func (p *ProcessBase) HasWsConn(userName string) bool

func (*ProcessBase) InitPerformanceStatus

func (p *ProcessBase) InitPerformanceStatus()

func (*ProcessBase) Kill

func (p *ProcessBase) Kill() error

func (*ProcessBase) ProcessControl

func (p *ProcessBase) ProcessControl(name string)

func (*ProcessBase) ResetRestartTimes

func (p *ProcessBase) ResetRestartTimes()

func (*ProcessBase) SetState

func (p *ProcessBase) SetState(state constants.ProcessState, fn ...func() bool) bool

fn 函数执行成功的情况下对state赋值

func (*ProcessBase) VerifyControl

func (p *ProcessBase) VerifyControl() bool

没人在使用或控制时间过期

type ProcessPty

type ProcessPty struct {
	*ProcessBase
	// contains filtered or unexported fields
}

func (*ProcessPty) ReadCache

func (p *ProcessPty) ReadCache(ws ConnectInstance)

func (*ProcessPty) SetTerminalSize

func (p *ProcessPty) SetTerminalSize(cols, rows int)

func (*ProcessPty) Start

func (p *ProcessPty) Start() (err error)

func (*ProcessPty) Type

func (p *ProcessPty) Type() constants.TerminalType

func (*ProcessPty) Write

func (p *ProcessPty) Write(input string) (err error)

func (*ProcessPty) WriteBytes

func (p *ProcessPty) WriteBytes(input []byte) (err error)

type ProcessStd

type ProcessStd struct {
	*ProcessBase
	// contains filtered or unexported fields
}

func (*ProcessStd) Read

func (p *ProcessStd) Read() string

func (*ProcessStd) ReadCache

func (p *ProcessStd) ReadCache(ws ConnectInstance)

func (*ProcessStd) SetTerminalSize

func (p *ProcessStd) SetTerminalSize(cols, rows int)

func (*ProcessStd) Start

func (p *ProcessStd) Start() (err error)

func (*ProcessStd) Type

func (p *ProcessStd) Type() constants.TerminalType

func (*ProcessStd) Write

func (p *ProcessStd) Write(input string) (err error)

func (*ProcessStd) WriteBytes

func (p *ProcessStd) WriteBytes(input []byte) (err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL