Documentation ¶
Index ¶
- Constants
- func GetEventFromCtx(ctx context.Context) rkquery.Event
- func GetLoggerFromCtx(ctx context.Context) *zap.Logger
- func RegisterDatabaseRegFunc(dbType string, f func(map[string]string, *zap.Logger) Database)
- func RegisterEntriesFromConfig(raw []byte) map[string]rkentry.Entry
- type BootConfig
- type Database
- type Entry
- func (e *Entry) AddJob(job *Job) error
- func (e *Entry) Bootstrap(ctx context.Context)
- func (e *Entry) CancelJob(job *Job) error
- func (e *Entry) CancelJobsOverdue(days int, filter *JobFilter) error
- func (e *Entry) CleanJobs(days int, filter *JobFilter) error
- func (e *Entry) Database() Database
- func (e *Entry) DeleteJob(jobId string) error
- func (e *Entry) FinishJob(job *Job, success bool) error
- func (e *Entry) GetDescription() string
- func (e *Entry) GetJob(id string) (*Job, error)
- func (e *Entry) GetName() string
- func (e *Entry) GetType() string
- func (e *Entry) Interrupt(ctx context.Context)
- func (e *Entry) ListJobs(filter *JobFilter) ([]*Job, int, error)
- func (e *Entry) StartJob(job *Job) error
- func (e *Entry) StartWorker()
- func (e *Entry) StopWorker(force bool, waitSec int)
- func (e *Entry) String() string
- func (e *Entry) UpdateJobPayloadAndStep(job *Job) error
- func (e *Entry) Worker() Worker
- type Job
- type JobFilter
- type LocalWorker
- type NewRecorderF
- type Processor
- type Recorder
- type Step
- type UpdateJobFunc
- type Worker
Constants ¶
View Source
const ( JobStateCreated = "created" JobStateRunning = "running" JobStateCanceled = "canceled" JobStateSuccess = "success" JobStateFailed = "failed" )
View Source
const ( LoggerKey = "rk-async-logger" EventKey = "rk-async-event" )
Variables ¶
This section is empty.
Functions ¶
func RegisterDatabaseRegFunc ¶
Types ¶
type BootConfig ¶
type BootConfig struct { Async struct { Enabled bool `json:"enabled" yaml:"enabled"` Logger string `json:"logger" yaml:"logger"` Event string `json:"event" yaml:"event"` Database struct { MySql struct { Enabled bool `json:"enabled" yaml:"enabled"` EntryName string `json:"entryName" yaml:"entryName"` Database string `json:"database" yaml:"database"` } `yaml:"mySql" json:"mySql"` Postgres struct { Enabled bool `json:"enabled" yaml:"enabled"` EntryName string `json:"entryName" yaml:"entryName"` Database string `json:"database" yaml:"database"` } `yaml:"postgres" json:"postgres"` } `yaml:"database" json:"database"` Worker struct { Local struct { Enabled bool `json:"enabled" yaml:"enabled"` } `yaml:"local" json:"local"` } `yaml:"worker" json:"worker"` } `yaml:"async" json:"async"` }
type Database ¶
type Database interface { Type() string AddJob(job *Job) error DeleteJob(jobId string) error RegisterProcessor(jobType string, processor Processor) GetProcessor(jobType string) Processor PickJobToWorkWithId(jobId string) (*Job, error) PickJobToWork() (*Job, error) UpdateJobState(job *Job) error UpdateJobPayloadAndStep(job *Job) error ListJobs(filter *JobFilter) ([]*Job, int, error) GetJob(id string) (*Job, error) CancelJobsOverdue(days int, filter *JobFilter) error CleanJobs(days int, filter *JobFilter) error }
type Entry ¶
type Entry struct {
// contains filtered or unexported fields
}
func (*Entry) CancelJobsOverdue ¶
func (*Entry) GetDescription ¶
func (*Entry) StartWorker ¶ added in v0.0.3
func (e *Entry) StartWorker()
func (*Entry) StopWorker ¶ added in v0.0.3
func (*Entry) UpdateJobPayloadAndStep ¶ added in v0.0.24
type Job ¶
type Job struct { // do not edit Id string `json:"id" yaml:"id" gorm:"primaryKey"` InvokedRole string `json:"invokedRole" yaml:"invokedRole" gorm:"index"` InvokedInstance string `json:"invokedInstance" yaml:"invokedInstance" gorm:"index"` State string `json:"state" yaml:"state" gorm:"index"` CreatedAt time.Time `yaml:"createdAt" json:"createdAt" attr:"-"` UpdatedAt time.Time `yaml:"updatedAt" json:"updatedAt"` // edit Type string `json:"type" yaml:"type" gorm:"index"` UserId string `json:"userId" yaml:"userId" gorm:"index"` Filter string `json:"filter" yaml:"filter" gorm:"text"` Steps datatypes.JSONType[[]*Step] `json:"steps" yaml:"steps"` Payload datatypes.JSONType[interface{}] `json:"payload" yaml:"payload"` }
type JobFilter ¶
type JobFilter struct { ClauseList []clause.Expression Limit int Offset int Order string }
type LocalWorker ¶
type LocalWorker struct {
// contains filtered or unexported fields
}
func NewLocalWorker ¶
func NewLocalWorker(db Database, logger *rkentry.LoggerEntry, event *rkentry.EventEntry) *LocalWorker
func (*LocalWorker) Database ¶
func (w *LocalWorker) Database() Database
func (*LocalWorker) Start ¶
func (w *LocalWorker) Start()
func (*LocalWorker) Stop ¶
func (w *LocalWorker) Stop(force bool, waitSec int)
type NewRecorderF ¶ added in v0.0.20
type NewRecorderF func() *Recorder
type Processor ¶ added in v0.0.10
type Processor interface {
Process(context.Context, *Job, UpdateJobFunc) error
}
type Step ¶ added in v0.0.10
type Step struct { Index int `json:"index" yaml:"index"` Name string `json:"id" yaml:"id"` State string `json:"state" yaml:"state"` StartedAt time.Time `yaml:"startedAt" json:"startedAt"` ElapsedSec float64 `yaml:"elapsedSec" json:"elapsedSec"` Output []string `yaml:"output" json:"output"` PersistFunc func() `json:"-" yaml:"-"` Lock sync.Mutex `json:"-" yaml:"-"` }
func (*Step) NewRecorder ¶ added in v0.0.20
type UpdateJobFunc ¶ added in v0.0.10
Click to show internal directories.
Click to hide internal directories.