repositories

package
v0.0.0-...-3f08e25 Latest Latest
Warning

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

Go to latest
Published: Jan 3, 2020 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewLockRepository

func NewLockRepository(etcd *datasources.Etcd) *lockRepository

实例化LockRepository

Types

type CategoryRepository

type CategoryRepository interface {
	// 保存Category
	Save(category *datamodels.Category) (*datamodels.Category, error)
	// 获取Category的列表
	List(offset int, limit int) ([]*datamodels.Category, error)
	// 获取Category信息
	Get(id int64) (*datamodels.Category, error)
	// 根据Category的Name获取信息
	GetByName(name string) (*datamodels.Category, error)
	// 根据ID或者Name获取Category
	GetByIdOrName(idOrName string) (*datamodels.Category, error)
	// 删除Category
	Delete(category *datamodels.Category) (err error)
	// Update
	Update(category *datamodels.Category, fields map[string]interface{}) (*datamodels.Category, error)
	// Update By Id
	UpdateByID(id int64, fields map[string]interface{}) (*datamodels.Category, error)
	// 获取Job的列表
	GetJobsList(category *datamodels.Category, offset int, limit int) (jobs []*datamodels.Job, err error)
}

func NewCategoryRepository

func NewCategoryRepository(db *gorm.DB, etcd *datasources.Etcd) CategoryRepository

实例化Category Repository

type EtcdManager

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

Job Manager 计划任务的管理器

func NewEtcdManager

func NewEtcdManager(etcdConfig *common.EtcdConfig) (*EtcdManager, error)

实例化Job Manager

func (*EtcdManager) CreateJobLock

func (etcdManager *EtcdManager) CreateJobLock(name string) (jobLock *common.JobLock)

创建任务执行锁

func (*EtcdManager) KillJob

func (etcdManager *EtcdManager) KillJob(category string, jobID int) (err error)

计划任务kill 杀掉计划任务运行的进程

func (*EtcdManager) WatchKeys

func (etcdManager *EtcdManager) WatchKeys(keyDir string, watchHandler interfaces.WatchHandler) (err error)

Watch keys 监听etcd key的变化: 比如监听jobs的变化,和监听kill的任务 传递的参数:要监听的key的前缀,和处理监听的接口

type JobExecuteRepository

type JobExecuteRepository interface {
	// 创建JobExecute
	Create(jobExecute *datamodels.JobExecute) (*datamodels.JobExecute, error)
	// 根据ID获取JobExecute
	Get(id int64) (jobExecute *datamodels.JobExecute, err error)
	// 获取JobExecute的列表
	List(offset int, limit int) (jobExecutes []*datamodels.JobExecute, err error)
	// 更新
	Update(jobExecute *datamodels.JobExecute, fields map[string]interface{}) (*datamodels.JobExecute, error)
	// 根据ID更新
	UpdateByID(id int64, fields map[string]interface{}) (jobExecute *datamodels.JobExecute, err error)

	// 回写执行结果信息
	SaveExecuteLog(jobExecuteResult *datamodels.JobExecuteResult) (jobExecute *datamodels.JobExecute, err error)

	// 获取JobExecute的Log
	GetExecuteLog(jobExecute *datamodels.JobExecute) (jobExecuteLog *datamodels.JobExecuteLog, err error)
	GetExecuteLogByID(id int64) (jobExecuteLog *datamodels.JobExecuteLog, err error)
	// Kill Job Execute
	KillByID(id int64) (success bool, err error)
}

func NewJobExecuteRepository

func NewJobExecuteRepository(db *gorm.DB, etcd *datasources.Etcd, mongoDB *datasources.MongoDB) JobExecuteRepository

type JobKillRepository

type JobKillRepository interface {
	// 保存JobKill
	Save(jobKill *datamodels.JobKill) (*datamodels.JobKill, error)
	// 获取JobKill
	Get(id int64) (jobKill *datamodels.JobKill, err error)
	// 获取Job Kill的列表
	List(offset int, limit int) (jobKills []*datamodels.JobKill, err error)
	// 设置JobKill为Finished
	SetFinishedByID(id int64) (jobKill *datamodels.JobKill, err error)
	// 修改JobKill
	Update(jobKill *datamodels.JobKill, fields map[string]interface{}) (*datamodels.JobKill, error)
	UpdateByID(id int64, fields map[string]interface{}) (*datamodels.JobKill, error)
}

func NewJobKillRepository

func NewJobKillRepository(db *gorm.DB, etcd *datasources.Etcd) JobKillRepository

type JobRepository

type JobRepository interface {
	// 保存Job
	Save(job *datamodels.Job) (*datamodels.Job, error)
	// 获取Job的列表
	List(offset int, limit int) (jobs []*datamodels.Job, err error)
	// 获取Job的信息
	Get(id int64) (job *datamodels.Job, err error)
	GetWithCategory(id int64) (job *datamodels.Job, err error)
	// 删除Job
	Delete(job *datamodels.Job) (err error)
	// 修改Job
	Update(job *datamodels.Job, fields map[string]interface{}) (*datamodels.Job, error)
	UpdateByID(id int64, fields map[string]interface{}) (*datamodels.Job, error)
	// 根据ID或者Name获取分类
	GetCategoryByIDOrName(idOrName string) (category *datamodels.Category, err error)
	// 获取Job的执行列表
	GetJobExecuteList(jobID int64, offset int, limit int) (jobExecutes []*datamodels.JobExecute, err error)
}

func NewJobRepository

func NewJobRepository(db *gorm.DB, etcd *datasources.Etcd) JobRepository

type LockRepository

type LockRepository interface {
	// 创建、抢锁
	Create(name string, ttl int64) (lock *datamodels.Lock, err error)
	// 对锁续租
	Lease(leaseID int64) error
	// 删除锁: 释放租约
	Release(leaseID int64) error
}

Lock Repository

type WorkerRepository

type WorkerRepository interface {
	// 创建Worker
	Create(worker *datamodels.Worker) (*datamodels.Worker, error)
	// 获取Worker
	Get(name string) (worker *datamodels.Worker, err error)
	// 删除Worker
	Delete(worker *datamodels.Worker) (success bool, err error)
	// 根据Worker的名字删除
	DeleteByName(name string) (success bool, err error)
	// 工作节点的列表
	List() (workersList []*datamodels.Worker, err error)
}

func NewWorkerRepository

func NewWorkerRepository(etcd *datasources.Etcd) WorkerRepository

Jump to

Keyboard shortcuts

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