Documentation ¶
Index ¶
- Constants
- func GetHour(n int64) *hour
- func GetHourInterval(n int64) *hourInterval
- func GetMinutes(n int64) *minutes
- func GetSeconds(n int64) *seconds
- func NewJobsXorm(db *xorm.Engine) *jobsXorm
- type Client
- type ClientConfig
- type ConfigCreateInCustomId
- type ConfigCreateInCustomIdMaxNumber
- type ConfigCreateInCustomIdMaxNumberOnly
- type ConfigCreateInCustomIdOnly
- type Cron
- type CronConfig
- type GrpcCron
- type JobsGorm
- func (j *JobsGorm) CheckManyTask(tx *gorm.DB, vs []jobs_gorm_model.Task)
- func (j *JobsGorm) CheckSingleTask(tx *gorm.DB, v jobs_gorm_model.Task)
- func (j *JobsGorm) CreateInCustomId(config *ConfigCreateInCustomId) error
- func (j *JobsGorm) CreateInCustomIdMaxNumber(config *ConfigCreateInCustomIdMaxNumber) error
- func (j *JobsGorm) CreateInCustomIdMaxNumberOnly(config *ConfigCreateInCustomIdMaxNumberOnly) error
- func (j *JobsGorm) CreateInCustomIdOnly(config *ConfigCreateInCustomIdOnly) error
- func (j *JobsGorm) EditTask(tx *gorm.DB, id uint) *gorm.DB
- func (j *JobsGorm) GetCurrentIp() string
- func (j *JobsGorm) GetDb() *gorm.DB
- func (j *JobsGorm) GetIssueAddress(workers []string, v *jobs_gorm_model.Task) (address string, err error)
- func (j *JobsGorm) GetRedis() *redis.Client
- func (j *JobsGorm) GetSubscribeClientList(ctx context.Context) ([]string, error)
- func (j *JobsGorm) Lock(info jobs_gorm_model.Task, id any) (string, error)
- func (j *JobsGorm) LockForever(info jobs_gorm_model.Task, id any) (string, error)
- func (j *JobsGorm) PSubscribe(ctx context.Context) SubscribeResult
- func (j *JobsGorm) Ping(ctx context.Context)
- func (j *JobsGorm) Publish(ctx context.Context, channel string, message interface{}) error
- func (j *JobsGorm) RefreshIp(ctx context.Context, tx *gorm.DB)
- func (j *JobsGorm) Run(info jobs_gorm_model.Task, status int, desc string)
- func (j *JobsGorm) RunAddLog(id uint, runId string) error
- func (j *JobsGorm) Subscribe(ctx context.Context) SubscribeResult
- func (j *JobsGorm) TaskFindAll(tx *gorm.DB, frequency int64) (results []jobs_gorm_model.Task)
- func (j *JobsGorm) TaskFindAllError(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task
- func (j *JobsGorm) TaskFindAllIn(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task
- func (j *JobsGorm) TaskFindAllSuccess(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task
- func (j *JobsGorm) TaskFindAllTimeout(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task
- func (j *JobsGorm) TaskFindAllWait(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task
- func (j *JobsGorm) TaskIpInit(tx *gorm.DB, ips map[string]string) bool
- func (j *JobsGorm) TaskIpUpdate(tx *gorm.DB, taskType, ips string) *gorm.DB
- func (j *JobsGorm) TaskLogRunTake(tx *gorm.DB, taskId uint, runId string) (result jobs_gorm_model.TaskLogRun)
- func (j *JobsGorm) TaskTake(tx *gorm.DB, customId string) (result jobs_gorm_model.Task)
- func (j *JobsGorm) TaskTakeError(tx *gorm.DB, customId string) jobs_gorm_model.Task
- func (j *JobsGorm) TaskTakeId(tx *gorm.DB, id uint) (result jobs_gorm_model.Task)
- func (j *JobsGorm) TaskTakeIn(tx *gorm.DB, customId string) jobs_gorm_model.Task
- func (j *JobsGorm) TaskTakeSuccess(tx *gorm.DB, customId string) jobs_gorm_model.Task
- func (j *JobsGorm) TaskTakeTimeout(tx *gorm.DB, customId string) jobs_gorm_model.Task
- func (j *JobsGorm) TaskTakeWait(tx *gorm.DB, customId string) jobs_gorm_model.Task
- func (j *JobsGorm) TaskTypeTake(tx *gorm.DB, customId, Type string) (result jobs_gorm_model.Task)
- func (j *JobsGorm) TaskTypeTakeError(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task
- func (j *JobsGorm) TaskTypeTakeIn(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task
- func (j *JobsGorm) TaskTypeTakeSuccess(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task
- func (j *JobsGorm) TaskTypeTakeTimeout(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task
- func (j *JobsGorm) TaskTypeTakeWait(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task
- func (j *JobsGorm) Unlock(info jobs_gorm_model.Task, id any) error
- func (j *JobsGorm) UpdateFrequency(tx *gorm.DB, id uint, frequency int64) *gorm.DB
- type JobsGormConfig
- type Server
- type ServerConfig
- type SubscribeResult
- type Worker
- type WorkerConfig
Constants ¶
const ( CodeAbnormal = 0 // 异常 CodeError = http.StatusInternalServerError // 失败 CodeSuccess = http.StatusOK // 成功 CodeEnd = http.StatusCreated // 结束 )
const ( TASK_IN = "IN" // 任务运行 TASK_SUCCESS = "SUCCESS" // 任务完成 TASK_ERROR = "ERROR" // 任务异常 TASK_TIMEOUT = "TIMEOUT" // 任务超时 TASK_WAIT = "WAIT" // 任务等待 )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ClientConfig ¶
type ClientConfig struct {
Address string // 服务端口 127.0.0.1:8888
}
ClientConfig 客户端配置
type ConfigCreateInCustomId ¶
type ConfigCreateInCustomId struct { Tx *gorm.DB // 驱动 Params string // 参数 Frequency int64 // 频率(秒单位) CustomId string // 自定义编号 CustomSequence int64 // 自定义顺序 Type string // 类型 TypeName string // 类型名称 SpecifyIp string // 指定外网IP CurrentIp string // 当前ip }
ConfigCreateInCustomId 创建正在运行任务
type ConfigCreateInCustomIdMaxNumber ¶
type ConfigCreateInCustomIdMaxNumber struct { Tx *gorm.DB // 驱动 Params string // 参数 Frequency int64 // 频率(秒单位) MaxNumber int64 // 最大次数 CustomId string // 自定义编号 CustomSequence int64 // 自定义顺序 Type string // 类型 TypeName string // 类型名称 SpecifyIp string // 指定外网IP CurrentIp string // 当前ip }
ConfigCreateInCustomIdMaxNumber 创建正在运行任务并限制数量
type ConfigCreateInCustomIdMaxNumberOnly ¶
type ConfigCreateInCustomIdMaxNumberOnly struct { Tx *gorm.DB // 驱动 Params string // 参数 Frequency int64 // 频率(秒单位) MaxNumber int64 // 最大次数 CustomId string // 自定义编号 CustomSequence int64 // 自定义顺序 Type string // 类型 TypeName string // 类型名称 SpecifyIp string // 指定外网IP CurrentIp string // 当前ip }
ConfigCreateInCustomIdMaxNumberOnly 创建正在运行唯一任务并限制数量
type ConfigCreateInCustomIdOnly ¶
type ConfigCreateInCustomIdOnly struct { Tx *gorm.DB // 驱动 Params string // 参数 Frequency int64 // 频率(秒单位) CustomId string // 自定义编号 CustomSequence int64 // 自定义顺序 Type string // 类型 TypeName string // 类型名称 SpecifyIp string // 指定外网IP CurrentIp string // 当前ip }
ConfigCreateInCustomIdOnly 创建正在运行唯一任务
type Cron ¶
type Cron struct {
// contains filtered or unexported fields
}
Cron 定时任务管理器
func (*Cron) AddJobByFunc ¶
AddJobByFunc 添加函数作为定时任务 id:唯一任务id spec:配置定时执行时间表达式 f:需要执行的任务方法
func (*Cron) AddJobByInterface ¶
AddJobByInterface 实现接口的方式添加定时任务 id:唯一任务id spec:配置定时执行时间表达式 cmd:需要执行的任务方法
func (*Cron) IsExistsJob ¶
IsExistsJob 判断是否存在任务 id:唯一任务id
type CronConfig ¶
type CronConfig struct {
Address string // 服务端口 127.0.0.1:8888
}
CronConfig 定时任务配置
type GrpcCron ¶
type GrpcCron struct { CronConfig // 配置 Pub pb.PubSubClient // 订阅 Conn *grpc.ClientConn // 链接信息 }
GrpcCron 定时任务
func (*GrpcCron) Send ¶
func (c *GrpcCron) Send(in *pb.PublishRequest) (*pb.PublishResponse, error)
Send 发送
type JobsGorm ¶
type JobsGorm struct {
// contains filtered or unexported fields
}
JobsGorm Gorm数据库驱动
func (*JobsGorm) CheckManyTask ¶
func (j *JobsGorm) CheckManyTask(tx *gorm.DB, vs []jobs_gorm_model.Task)
CheckManyTask 多任务检查
func (*JobsGorm) CheckSingleTask ¶
func (j *JobsGorm) CheckSingleTask(tx *gorm.DB, v jobs_gorm_model.Task)
CheckSingleTask 单任务检查
func (*JobsGorm) CreateInCustomId ¶
func (j *JobsGorm) CreateInCustomId(config *ConfigCreateInCustomId) error
CreateInCustomId 创建正在运行任务
func (*JobsGorm) CreateInCustomIdMaxNumber ¶
func (j *JobsGorm) CreateInCustomIdMaxNumber(config *ConfigCreateInCustomIdMaxNumber) error
CreateInCustomIdMaxNumber 创建正在运行任务并限制数量
func (*JobsGorm) CreateInCustomIdMaxNumberOnly ¶
func (j *JobsGorm) CreateInCustomIdMaxNumberOnly(config *ConfigCreateInCustomIdMaxNumberOnly) error
CreateInCustomIdMaxNumberOnly 创建正在运行唯一任务并限制数量
func (*JobsGorm) CreateInCustomIdOnly ¶
func (j *JobsGorm) CreateInCustomIdOnly(config *ConfigCreateInCustomIdOnly) error
CreateInCustomIdOnly 创建正在运行唯一任务
func (*JobsGorm) GetCurrentIp ¶ added in v1.0.51
GetCurrentIp 获取当前ip
func (*JobsGorm) GetIssueAddress ¶ added in v1.0.51
func (j *JobsGorm) GetIssueAddress(workers []string, v *jobs_gorm_model.Task) (address string, err error)
GetIssueAddress 获取下发地址 workers 在线列表 v 任务信息 --- address 下发地址 err 错误信息
func (*JobsGorm) GetSubscribeClientList ¶ added in v1.0.51
GetSubscribeClientList 获取在线的客户端
func (*JobsGorm) LockForever ¶
LockForever 永远上锁
func (*JobsGorm) PSubscribe ¶ added in v1.0.51
func (j *JobsGorm) PSubscribe(ctx context.Context) SubscribeResult
PSubscribe 订阅,支持通配符匹配(ch_user_*)
func (*JobsGorm) Run ¶
func (j *JobsGorm) Run(info jobs_gorm_model.Task, status int, desc string)
Run 运行
func (*JobsGorm) Subscribe ¶ added in v1.0.51
func (j *JobsGorm) Subscribe(ctx context.Context) SubscribeResult
Subscribe 订阅
func (*JobsGorm) TaskFindAll ¶
TaskFindAll 查询多任务
func (*JobsGorm) TaskFindAllError ¶
TaskFindAllError 查询多任务 - 任务异常
func (*JobsGorm) TaskFindAllIn ¶
TaskFindAllIn 查询多任务 - 任务运行
func (*JobsGorm) TaskFindAllSuccess ¶
TaskFindAllSuccess 查询多任务 - 任务完成
func (*JobsGorm) TaskFindAllTimeout ¶
TaskFindAllTimeout 查询多任务 - 任务超时
func (*JobsGorm) TaskFindAllWait ¶
TaskFindAllWait 查询多任务 - 任务等待
func (*JobsGorm) TaskIpInit ¶
TaskIpInit 实例任务ip
func (*JobsGorm) TaskIpUpdate ¶
TaskIpUpdate 更新ip
func (*JobsGorm) TaskLogRunTake ¶
func (j *JobsGorm) TaskLogRunTake(tx *gorm.DB, taskId uint, runId string) (result jobs_gorm_model.TaskLogRun)
TaskLogRunTake 查询任务执行日志
func (*JobsGorm) TaskTakeError ¶
TaskTakeError 查询单任务 - 任务异常
func (*JobsGorm) TaskTakeId ¶
TaskTakeId 查询单任务
func (*JobsGorm) TaskTakeIn ¶
TaskTakeIn 查询单任务 - 任务运行
func (*JobsGorm) TaskTakeSuccess ¶
TaskTakeSuccess 查询单任务 - 任务完成
func (*JobsGorm) TaskTakeTimeout ¶
TaskTakeTimeout 查询单任务 - 任务超时
func (*JobsGorm) TaskTakeWait ¶
TaskTakeWait 查询单任务 - 任务等待
func (*JobsGorm) TaskTypeTake ¶
TaskTypeTake 查询单任务
func (*JobsGorm) TaskTypeTakeError ¶
TaskTypeTakeError 查询单任务 - 任务异常
func (*JobsGorm) TaskTypeTakeIn ¶
TaskTypeTakeIn 查询单任务 - 任务运行
func (*JobsGorm) TaskTypeTakeSuccess ¶
TaskTypeTakeSuccess 查询单任务 - 任务完成
func (*JobsGorm) TaskTypeTakeTimeout ¶
TaskTypeTakeTimeout 查询单任务 - 任务超时
func (*JobsGorm) TaskTypeTakeWait ¶
TaskTypeTakeWait 查询单任务 - 任务等待
type JobsGormConfig ¶ added in v1.0.51
type JobsGormConfig struct { GormClient *dorm.GormClient // 数据库驱动 RedisClient *dorm.RedisClient // 缓存数据库驱动 CurrentIp string // 当前ip LockKeyPrefix string // 锁Key前缀 xxx_lock LockKeySeparator string // 锁Key分隔符 : CornKeyPrefix string // 任务Key前缀 xxx_cron CornKeyCustom string // 任务Key自定义 xxx_cron_自定义 xxx_cron_自定义_* Debug bool // 调试 }
type Server ¶
type Server struct { ServerConfig // 配置 Pub *pubsub.Publisher // 订阅 Conn *grpc.Server // 链接信息 }
Server 服务
type ServerConfig ¶
type ServerConfig struct { PublishTimeout time.Duration // 控制发布时最大阻塞时间 PubBuffer int // 缓冲区大小,控制每个订阅者的chan缓冲区大小 Address string // 服务端口 0.0.0.0:8888 }
ServerConfig 服务配置
type SubscribeResult ¶ added in v1.0.51
type SubscribeResult struct { Message *redis.PubSub // contains filtered or unexported fields }
type Worker ¶
type Worker struct { WorkerConfig // 配置 Pub pb.PubSubClient // 订阅 Conn *grpc.ClientConn // 链接信息 }
Worker 工作
func (*Worker) SubscribeCron ¶
func (w *Worker) SubscribeCron() pb.PubSub_SubscribeClient
SubscribeCron 订阅服务
type WorkerConfig ¶
WorkerConfig 工作配置