exec

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Oct 6, 2023 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type InMemMetaKeeper added in v0.3.0

type InMemMetaKeeper struct {
	// contains filtered or unexported fields
}

func NewInMemMetaKeeper added in v0.3.0

func NewInMemMetaKeeper() *InMemMetaKeeper

func (*InMemMetaKeeper) Get added in v0.3.0

func (k *InMemMetaKeeper) Get(reqId string) (Meta, bool)

func (*InMemMetaKeeper) Set added in v0.3.0

func (k *InMemMetaKeeper) Set(m Meta)

type InMemRequestKeeper

type InMemRequestKeeper struct {
	// contains filtered or unexported fields
}

func NewInMemRequestKeeper

func NewInMemRequestKeeper() *InMemRequestKeeper

func (*InMemRequestKeeper) AsyncRun added in v0.3.0

func (k *InMemRequestKeeper) AsyncRun(req Request)

caller should run in a co-routine

func (*InMemRequestKeeper) GetMeta added in v0.3.0

func (k *InMemRequestKeeper) GetMeta(id string) (Meta, bool)

func (*InMemRequestKeeper) Register added in v0.3.0

func (k *InMemRequestKeeper) Register(req Request) (*RequestMeta, *util.Result)

type Job added in v0.3.0

type Job struct {
	TaskName   string         `json:"task_name,omitempty" yaml:"task_name,omitempty" bson:"task_name,omitempty" gorm:"index"`
	ReqID      string         `json:"req_id,omitempty" yaml:"req_id,omitempty" bson:"req_id,omitempty"`
	Status     Status         `json:"status,omitempty" yaml:"status,omitempty" bson:"status,omitempty"`
	StartedBy  string         `json:"started_by,omitempty" yaml:"started_by,omitempty" bson:"started_by,omitempty"`
	StartedAt  time.Time      `json:"started_at,omitempty" yaml:"started_at,omitempty" bson:"started_at,omitempty"`
	FinishedAt *time.Time     `json:"finished_at,omitempty" yaml:"finished_at,omitempty" bson:"finished_at,omitempty"`
	LogFile    string         `json:"log_file,omitempty" yaml:"log_file,omitempty" bson:"log_file,omitempty"`
	Errors     []*util.Result `json:"errors,omitempty" yaml:"errors,omitempty" bson:"errors,omitempty" gorm:"serializer:json"`
}

A Job finishes a Task using a Request

type Meta added in v0.3.0

type Meta interface {
	ID() string
	Name() string
	GetResults() []*util.Result
	SetResults(r []*util.Result)
	GetStatus() Status
	SetStatus(s Status)
}

type MetaKeeper added in v0.3.0

type MetaKeeper interface {
	Get(reqId string) (Meta, bool)
	Set(req Meta)
}

type Request

type Request interface {
	ID() string
	Name() string
	Logger() *zerolog.Logger
	Run() (bool, []*util.Result)
}

type RequestKeeper

type RequestKeeper interface {
	Register(req Request) (*RequestMeta, *util.Result)
	GetMeta(id string) (Meta, bool)
	AsyncRun(req Request)
}

type RequestMeta

type RequestMeta struct {
	RequestID string         `json:"request_id,omitempty" yaml:"request_id,omitempty" bson:"request_id,omitempty"`
	FuncName  string         `json:"func_name,omitempty" yaml:"func_name,omitempty" bson:"func_name,omitempty"`
	Results   []*util.Result `json:"results,omitempty" yaml:"result,omitempty" bson:"results,omitempty"`
	Status    Status         `json:"status,omitempty" yaml:"status,omitempty" bson:"status,omitempty"`
}

func (*RequestMeta) GetResults added in v0.3.0

func (m *RequestMeta) GetResults() []*util.Result

func (*RequestMeta) GetStatus added in v0.3.0

func (m *RequestMeta) GetStatus() Status

func (*RequestMeta) ID added in v0.3.0

func (m *RequestMeta) ID() string

func (*RequestMeta) Name added in v0.3.0

func (m *RequestMeta) Name() string

func (*RequestMeta) Reset

func (meta *RequestMeta) Reset(req Request)

func (*RequestMeta) SetResults added in v0.3.0

func (m *RequestMeta) SetResults(r []*util.Result)

func (*RequestMeta) SetStatus added in v0.3.0

func (m *RequestMeta) SetStatus(s Status)

type Status added in v0.3.0

type Status string
const (
	StatusReady   Status = "ready"
	StatusFailed  Status = "failed"
	StatusOk      Status = "succeeded"
	StautsRunning Status = "running"
)

type Task added in v0.3.0

type Task struct {
	Name        string `json:"name,omitempty" yaml:"name,omitempty" bson:"name,omitempty"`
	LastJob     *Job   `json:"last_job,omitempty" yaml:"last_job,omitempty" bson:"last_job,omitempty" gorm:"serializer:json"`
	LastSucc    *Job   `json:"last_succ,omitempty" yaml:"last_succ,omitempty" bson:"last_succ,omitempty" gorm:"serializer:json"`
	LastFail    *Job   `json:"last_fail,omitempty" yaml:"last_fail,omitempty" bson:"last_fail,omitempty" gorm:"serializer:json"`
	History     []*Job `json:"history,omitempty" yaml:"history,omitempty" bson:"history,omitempty" gorm:"serializer:json"`
	MaxJobCount int    `json:"max_job_count,omitempty" yaml:"max_job_count,omitempty" bson:"max_job_count,omitempty"`
}

App can do a Task for many times, each time of the task-execution is a Job

Jump to

Keyboard shortcuts

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