gojobs

package module
v1.0.163 Latest Latest
Warning

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

Go to latest
Published: Aug 19, 2024 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// CodeAbnormal 异常
	CodeAbnormal = 0
	// CodeError 失败
	CodeError = http.StatusInternalServerError
	// CodeSuccess 成功
	CodeSuccess = http.StatusOK
	// CodeEnd 结束
	CodeEnd = http.StatusCreated
)
View Source
const (
	// TASK_IN 任务运行
	TASK_IN = "IN"
	// TASK_SUCCESS 任务完成
	TASK_SUCCESS = "SUCCESS"
	// TASK_ERROR 任务异常
	TASK_ERROR = "ERROR"
	// TASK_TIMEOUT 任务超时
	TASK_TIMEOUT = "TIMEOUT"
	// TASK_WAIT 任务等待
	TASK_WAIT = "WAIT"
)
View Source
const (
	SpecifyIpNull = "0.0.0.0"
)
View Source
const (
	Version = "1.0.163"
)

Variables

This section is empty.

Functions

func EntTaskAnnotations added in v1.0.161

func EntTaskAnnotations() []schema.Annotation

EntTaskAnnotations 任务

func EntTaskFields added in v1.0.161

func EntTaskFields() []ent.Field

EntTaskFields 任务

func EntTaskIndexes added in v1.0.161

func EntTaskIndexes() []ent.Index

EntTaskIndexes 任务

func EntTaskLogAnnotations added in v1.0.161

func EntTaskLogAnnotations() []schema.Annotation

EntTaskLogAnnotations 任务日志

func EntTaskLogFields added in v1.0.161

func EntTaskLogFields() []ent.Field

EntTaskLogFields 任务日志

func EntTaskLogIndexes added in v1.0.161

func EntTaskLogIndexes() []ent.Index

EntTaskLogIndexes 任务日志

func GetRedisKeyName

func GetRedisKeyName(taskType string) string

GetRedisKeyName 获取Redis键名

func NewTraceStartSpan

func NewTraceStartSpan(ctx context.Context, spanName string) (context.Context, trace.Span)

NewTraceStartSpan 开始OpenTelemetry链路追踪状态

func SetRedisKeyValue

func SetRedisKeyValue(ctx context.Context, taskType string) (context.Context, string, any, time.Duration)

SetRedisKeyValue 返回设置Redis键值

func SetRedisKeyValueExpiration

func SetRedisKeyValueExpiration(ctx context.Context, taskType string, expiration int64) (context.Context, string, any, time.Duration)

SetRedisKeyValueExpiration 返回设置Redis键值,有过分时间

func TraceEndSpan

func TraceEndSpan(span trace.Span)

TraceEndSpan 结束OpenTelemetry链路追踪状态

func TraceGetSpanID

func TraceGetSpanID(ctx context.Context) (spanID string)

TraceGetSpanID 获取OpenTelemetry链路追踪SpanID

func TraceGetTraceID

func TraceGetTraceID(ctx context.Context) (traceID string)

TraceGetTraceID 获取OpenTelemetry链路追踪TraceID

func TraceRecordError

func TraceRecordError(ctx context.Context, err error, options ...trace.EventOption)

TraceRecordError 记录OpenTelemetry链路追踪错误

func TraceSetAttributes

func TraceSetAttributes(ctx context.Context, kv ...attribute.KeyValue)

TraceSetAttributes 设置OpenTelemetry链路追踪属性

func TraceSetStatus

func TraceSetStatus(ctx context.Context, code codes.Code, description string)

TraceSetStatus 设置OpenTelemetry链路追踪状态

func TraceStartSpan

func TraceStartSpan(ctx context.Context, spanName string) (context.Context, trace.Span)

TraceStartSpan 开始OpenTelemetry链路追踪状态

Types

type Client

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

Client 实例

func NewClient

func NewClient(ctx context.Context, currentIP string) (*Client, error)

NewClient 创建实例

func (*Client) ConfigGormClientFun

func (c *Client) ConfigGormClientFun(ctx context.Context, client *gorm.DB, taskTableName string, taskLogStatus bool, taskLogTableName string) error

ConfigGormClientFun GORM配置

func (*Client) ConfigRedisClientFun

func (c *Client) ConfigRedisClientFun(ctx context.Context, client *redis.Client, lockKeyPrefix string, lockKeySeparator string, cornKeyPrefix string, cornKeyCustom string) error

ConfigRedisClientFun REDIS配置 lockKeyPrefix 锁Key前缀 xxx_lock lockKeySeparator 锁Key分隔符 : cornKeyPrefix 任务Key前缀 xxx_cron cornKeyCustom 任务Key自定义 xxx_cron_自定义 xxx_cron_自定义_*

func (*Client) CreateInCustomId

func (c *Client) CreateInCustomId(ctx context.Context, config *ConfigCreateInCustomId) error

CreateInCustomId 创建正在运行任务

func (*Client) CreateInCustomIdMaxNumber

func (c *Client) CreateInCustomIdMaxNumber(ctx context.Context, config *ConfigCreateInCustomIdMaxNumber) error

CreateInCustomIdMaxNumber 创建正在运行任务并限制数量

func (*Client) CreateInCustomIdMaxNumberOnly

func (c *Client) CreateInCustomIdMaxNumberOnly(ctx context.Context, config *ConfigCreateInCustomIdMaxNumberOnly) error

CreateInCustomIdMaxNumberOnly 创建正在运行唯一任务并限制数量

func (*Client) CreateInCustomIdOnly

func (c *Client) CreateInCustomIdOnly(ctx context.Context, config *ConfigCreateInCustomIdOnly) error

CreateInCustomIdOnly 创建正在运行唯一任务

func (*Client) CreateWaitCustomId

func (c *Client) CreateWaitCustomId(ctx context.Context, config *ConfigCreateWaitCustomId) error

CreateWaitCustomId 创建正在运行任务

func (*Client) EditTask

func (c *Client) EditTask(ctx context.Context, tx *gorm.DB, id uint) *gorm.DB

EditTask 任务修改

func (*Client) EndHandle

func (c *Client) EndHandle(ctx context.Context, key any)

func (*Client) Filter

func (c *Client) Filter(ctx context.Context, isMandatoryIp bool, specifyIp string, tasks []GormModelTask, isPrint bool) (newTasks []GormModelTask)

Filter 过滤 ctx 上下文 isMandatoryIp 强制当前ip specifyIp 指定Ip tasks 过滤前的数据 newTasks 过滤后的数据

func (*Client) GetCurrentIp

func (c *Client) GetCurrentIp() string

GetCurrentIp 获取当前IP

func (*Client) GetDb

func (c *Client) GetDb() *gorm.DB

GetDb 获取数据库驱动

func (*Client) GetGormDb

func (c *Client) GetGormDb() *gorm.DB

GetGormDb 获取数据库驱动

func (*Client) GetIssueAddress

func (c *Client) GetIssueAddress(ctx context.Context, workers []string, v *GormModelTask) (string, error)

GetIssueAddress 获取下发地址 workers 在线列表 v 任务信息 --- address 下发地址 err 错误信息

func (*Client) GetRedisDb

func (c *Client) GetRedisDb() *redis.Client

GetRedisDb 获取缓存数据库驱动

func (*Client) GetSubscribeAddress

func (c *Client) GetSubscribeAddress() string

GetSubscribeAddress 获取订阅地址

func (*Client) GetSubscribeClientList

func (c *Client) GetSubscribeClientList(ctx context.Context) (client []string, err error)

GetSubscribeClientList 获取在线的客户端

func (*Client) GormTaskLogDelete

func (c *Client) GormTaskLogDelete(ctx context.Context, hour int64) error

GormTaskLogDelete 删除

func (*Client) GormTaskLogErrorDelete

func (c *Client) GormTaskLogErrorDelete(ctx context.Context, hour int64) error

GormTaskLogErrorDelete 删除任务异常

func (*Client) GormTaskLogInDelete

func (c *Client) GormTaskLogInDelete(ctx context.Context, hour int64) error

GormTaskLogInDelete 删除任务运行

func (*Client) GormTaskLogRecord

func (c *Client) GormTaskLogRecord(ctx context.Context, task GormModelTask, runId string, taskResultCode int, taskResultDesc string)

GormTaskLogRecord 记录

func (*Client) GormTaskLogSuccessDelete

func (c *Client) GormTaskLogSuccessDelete(ctx context.Context, hour int64) error

GormTaskLogSuccessDelete 删除任务完成

func (*Client) GormTaskLogTimeoutDelete

func (c *Client) GormTaskLogTimeoutDelete(ctx context.Context, hour int64) error

GormTaskLogTimeoutDelete 删除任务超时

func (*Client) GormTaskLogWaitDelete

func (c *Client) GormTaskLogWaitDelete(ctx context.Context, hour int64) error

GormTaskLogWaitDelete 删除任务等待

func (*Client) Lock

func (c *Client) Lock(ctx context.Context, info *GormModelTask, id any) (string, error)

Lock 上锁

func (*Client) LockCustomId

func (c *Client) LockCustomId(ctx context.Context, info *GormModelTask) (string, error)

LockCustomId 上锁

func (*Client) LockForever

func (c *Client) LockForever(ctx context.Context, info *GormModelTask, id any) (string, error)

LockForever 永远上锁

func (*Client) LockForeverCustomId

func (c *Client) LockForeverCustomId(ctx context.Context, info *GormModelTask) (string, error)

LockForeverCustomId 永远上锁

func (*Client) LockForeverId

func (c *Client) LockForeverId(ctx context.Context, info *GormModelTask) (string, error)

LockForeverId 永远上锁

func (*Client) LockId

func (c *Client) LockId(ctx context.Context, info *GormModelTask) (string, error)

LockId 上锁

func (*Client) NewLock

func (c *Client) NewLock(task *GormModelTask) (*TaskLockOperation, error)

func (*Client) PSubscribe

func (c *Client) PSubscribe(ctx context.Context) SubscribeResult

PSubscribe 订阅,支持通配符匹配(ch_user_*)

func (*Client) Publish

func (c *Client) Publish(ctx context.Context, channel string, message interface{}) error

Publish 发布 ctx 上下文 channel 频道 message 消息

func (*Client) Run

func (c *Client) Run(ctx context.Context, task GormModelTask, taskResultCode int, taskResultDesc string)

Run 运行

func (*Client) StartCronClean

func (c *Client) StartCronClean(ctx context.Context, cr *cron.Cron, cp string, hour int64) (cron.EntryID, error)

StartCronClean 定时清理任务日志

func (*Client) StartHandle

func (c *Client) StartHandle(ctx context.Context, key any, overdue int64) error

func (*Client) StartTask

func (c *Client) StartTask(ctx context.Context, tx *gorm.DB, id uint) error

StartTask 任务启动

func (*Client) StartTaskCustom

func (c *Client) StartTaskCustom(ctx context.Context, tx *gorm.DB, customId string, customSequence int64) error

StartTaskCustom 任务启动自定义

func (*Client) Subscribe

func (c *Client) Subscribe(ctx context.Context) SubscribeResult

Subscribe 订阅

func (*Client) TaskFindAll

func (c *Client) TaskFindAll(ctx context.Context, tx *gorm.DB, frequency int64) (results []GormModelTask)

TaskFindAll 查询多任务

func (*Client) TaskFindAllError

func (c *Client) TaskFindAllError(ctx context.Context, tx *gorm.DB, frequency int64) []GormModelTask

TaskFindAllError 查询多任务 - 任务异常

func (*Client) TaskFindAllErrorType

func (c *Client) TaskFindAllErrorType(ctx context.Context, tx *gorm.DB, Type string) []GormModelTask

TaskFindAllErrorType 查询多任务 - 任务异常

func (*Client) TaskFindAllIn

func (c *Client) TaskFindAllIn(ctx context.Context, tx *gorm.DB, frequency int64) []GormModelTask

TaskFindAllIn 查询多任务 - 任务运行

func (*Client) TaskFindAllInType

func (c *Client) TaskFindAllInType(ctx context.Context, tx *gorm.DB, Type string) []GormModelTask

TaskFindAllInType 查询多任务 - 任务运行

func (*Client) TaskFindAllSuccess

func (c *Client) TaskFindAllSuccess(ctx context.Context, tx *gorm.DB, frequency int64) []GormModelTask

TaskFindAllSuccess 查询多任务 - 任务完成

func (*Client) TaskFindAllSuccessType

func (c *Client) TaskFindAllSuccessType(ctx context.Context, tx *gorm.DB, Type string) []GormModelTask

TaskFindAllSuccessType 查询多任务 - 任务完成

func (*Client) TaskFindAllTimeout

func (c *Client) TaskFindAllTimeout(ctx context.Context, tx *gorm.DB, frequency int64) []GormModelTask

TaskFindAllTimeout 查询多任务 - 任务超时

func (*Client) TaskFindAllTimeoutType

func (c *Client) TaskFindAllTimeoutType(ctx context.Context, tx *gorm.DB, Type string) []GormModelTask

TaskFindAllTimeoutType 查询多任务 - 任务超时

func (*Client) TaskFindAllType

func (c *Client) TaskFindAllType(ctx context.Context, tx *gorm.DB, Type string, frequency int64) (results []GormModelTask)

TaskFindAllType 查询多任务

func (*Client) TaskFindAllWait

func (c *Client) TaskFindAllWait(ctx context.Context, tx *gorm.DB, frequency int64) []GormModelTask

TaskFindAllWait 查询多任务 - 任务等待

func (*Client) TaskFindAllWaitType

func (c *Client) TaskFindAllWaitType(ctx context.Context, tx *gorm.DB, Type string) []GormModelTask

TaskFindAllWaitType 查询多任务 - 任务等待

func (*Client) TaskTake

func (c *Client) TaskTake(ctx context.Context, tx *gorm.DB, customId string) (result GormModelTask)

TaskTake 自定义编号查询任务

func (*Client) TaskTakeError

func (c *Client) TaskTakeError(ctx context.Context, tx *gorm.DB, customId string) GormModelTask

TaskTakeError 查询单任务 - 任务异常

func (*Client) TaskTakeId

func (c *Client) TaskTakeId(ctx context.Context, tx *gorm.DB, id uint) (result GormModelTask)

TaskTakeId 编号查询任务

func (*Client) TaskTakeIn

func (c *Client) TaskTakeIn(ctx context.Context, tx *gorm.DB, customId string) GormModelTask

TaskTakeIn 查询单任务 - 任务运行

func (*Client) TaskTakeSuccess

func (c *Client) TaskTakeSuccess(ctx context.Context, tx *gorm.DB, customId string) GormModelTask

TaskTakeSuccess 查询单任务 - 任务完成

func (*Client) TaskTakeTimeout

func (c *Client) TaskTakeTimeout(ctx context.Context, tx *gorm.DB, customId string) GormModelTask

TaskTakeTimeout 查询单任务 - 任务超时

func (*Client) TaskTakeWait

func (c *Client) TaskTakeWait(ctx context.Context, tx *gorm.DB, customId string) GormModelTask

TaskTakeWait 查询单任务 - 任务等待

func (*Client) TaskTypeTake

func (c *Client) TaskTypeTake(ctx context.Context, tx *gorm.DB, customId, Type string) (result GormModelTask)

TaskTypeTake 查询单任务

func (*Client) TaskTypeTakeError

func (c *Client) TaskTypeTakeError(ctx context.Context, tx *gorm.DB, customId, Type string) GormModelTask

TaskTypeTakeError 查询单任务 - 任务异常

func (*Client) TaskTypeTakeIn

func (c *Client) TaskTypeTakeIn(ctx context.Context, tx *gorm.DB, customId, Type string) GormModelTask

TaskTypeTakeIn 查询单任务 - 任务运行

func (*Client) TaskTypeTakeSuccess

func (c *Client) TaskTypeTakeSuccess(ctx context.Context, tx *gorm.DB, customId, Type string) GormModelTask

TaskTypeTakeSuccess 查询单任务 - 任务完成

func (*Client) TaskTypeTakeTimeout

func (c *Client) TaskTypeTakeTimeout(ctx context.Context, tx *gorm.DB, customId, Type string) GormModelTask

TaskTypeTakeTimeout 查询单任务 - 任务超时

func (*Client) TaskTypeTakeWait

func (c *Client) TaskTypeTakeWait(ctx context.Context, tx *gorm.DB, customId, Type string) GormModelTask

TaskTypeTakeWait 查询单任务 - 任务等待

func (*Client) Unlock

func (c *Client) Unlock(ctx context.Context, info *GormModelTask, id any) error

Unlock Lock 解锁

func (*Client) UnlockCustomId

func (c *Client) UnlockCustomId(ctx context.Context, info *GormModelTask) error

UnlockCustomId 解锁

func (*Client) UnlockId

func (c *Client) UnlockId(ctx context.Context, info *GormModelTask) error

UnlockId 解锁

func (*Client) UpdateFrequency

func (c *Client) UpdateFrequency(ctx context.Context, tx *gorm.DB, id uint, frequency int64) error

UpdateFrequency 更新任务频率

type ConfigCreateInCustomId

type ConfigCreateInCustomId struct {
	Tx             *gorm.DB // 驱动
	Params         string   // 参数
	Frequency      int64    // 频率(秒单位)
	Spec           string   // cron表达式
	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    // 频率(秒单位)
	Spec           string   // cron表达式
	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    // 频率(秒单位)
	Spec           string   // cron表达式
	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    // 频率(秒单位)
	Spec           string   // cron表达式
	CustomID       string   // 自定义编号
	CustomSequence int64    // 自定义顺序
	Type           string   // 类型
	TypeName       string   // 类型名称
	SpecifyIP      string   // 指定IP
	CurrentIP      string   // 当前IP
}

ConfigCreateInCustomIdOnly 创建正在运行唯一任务

type ConfigCreateWaitCustomId

type ConfigCreateWaitCustomId struct {
	Tx             *gorm.DB // 驱动
	Params         string   // 参数
	Frequency      int64    // 频率(秒单位)
	Spec           string   // cron表达式
	CustomID       string   // 自定义编号
	CustomSequence int64    // 自定义顺序
	Type           string   // 类型
	TypeName       string   // 类型名称
	SpecifyIP      string   // 指定IP
	CurrentIP      string   // 当前IP
}

ConfigCreateWaitCustomId 创建正在运行任务

type Cron

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

Cron 定时任务管理器

func NewCron

func NewCron(opts ...CronOption) *Cron

NewCron 创建一个定时任务管理器

func NewCronWithSeconds

func NewCronWithSeconds(opts ...CronOption) *Cron

func (*Cron) AddFunc

func (c *Cron) AddFunc(spec string, cmd func()) (cron.EntryID, error)

AddFunc 添加任务

func (*Cron) AddJob

func (c *Cron) AddJob(spec string, cmd cron.Job) (cron.EntryID, error)

AddJob 添加任务

func (*Cron) AddTask

func (c *Cron) AddTask(name string, spec string, cmd func()) (cron.EntryID, error)

AddTask 添加任务

func (*Cron) Entry

func (c *Cron) Entry(id cron.EntryID) cron.Entry

Entry 查询任务

func (*Cron) GetDrive

func (c *Cron) GetDrive() *cron.Cron

GetDrive 获取驱动

func (*Cron) List

func (c *Cron) List() []cron.EntryID

List 任务列表

func (*Cron) ListShow

func (c *Cron) ListShow()

ListShow 任务列表

func (*Cron) ListTask

func (c *Cron) ListTask()

ListTask 任务列表

func (*Cron) PrintNameTask

func (c *Cron) PrintNameTask(id cron.EntryID, name string, content ...string)

PrintNameTask 日志任务

func (*Cron) PrintTask

func (c *Cron) PrintTask(id cron.EntryID, content ...string)

PrintTask 日志任务

func (*Cron) QueryInfo

func (c *Cron) QueryInfo(id cron.EntryID) (cron.EntryID, string)

QueryInfo 查询信息

func (*Cron) QueryTask

func (c *Cron) QueryTask(id cron.EntryID) cron.Entry

QueryTask 查询任务

func (*Cron) Remove

func (c *Cron) Remove(id cron.EntryID)

Remove 删除任务

func (*Cron) RemoveTask

func (c *Cron) RemoveTask(id cron.EntryID)

RemoveTask 删除任务

func (*Cron) RunListShow

func (c *Cron) RunListShow(spec string)

RunListShow 任务列表

func (*Cron) RunListTask

func (c *Cron) RunListTask(spec string)

RunListTask 任务列表

func (*Cron) Start

func (c *Cron) Start()

Start 启动任务

func (*Cron) Stop

func (c *Cron) Stop() context.Context

Stop 关闭任务

type CronOption

type CronOption func(*Cron)

func WithCronLog

func WithCronLog() CronOption

WithCronLog 日志

type GormModelTask

type GormModelTask struct {
	ID             uint           `gorm:"primaryKey;comment:记录编号" json:"id,omitempty"`                      // 记录编号
	Status         string         `gorm:"index;comment:状态码" json:"status,omitempty"`                        // 状态码
	StatusDesc     string         `gorm:"comment:状态描述" json:"status_desc,omitempty"`                        // 状态描述
	Params         string         `gorm:"comment:参数" json:"params,omitempty"`                               // 参数
	Frequency      int64          `gorm:"index;comment:频率(秒单位)" json:"frequency,omitempty"`                 // 频率(秒单位)
	Spec           string         `gorm:"index;comment:cron表达式" json:"spec,omitempty"`                      // cron表达式
	Number         int64          `gorm:"comment:当前次数" json:"number,omitempty"`                             // 当前次数
	MaxNumber      int64          `gorm:"comment:最大次数" json:"max_number,omitempty"`                         // 最大次数
	RunID          string         `gorm:"comment:执行编号" json:"run_id,omitempty"`                             // 执行编号
	CustomID       string         `gorm:"index;comment:自定义编号" json:"custom_id,omitempty"`                   // 自定义编号
	CustomSequence int64          `gorm:"comment:自定义顺序" json:"custom_sequence,omitempty"`                   // 自定义顺序
	Type           string         `gorm:"index;comment:类型" json:"type,omitempty"`                           // 类型
	TypeName       string         `gorm:"comment:类型名称" json:"type_name,omitempty"`                          // 类型名称
	CreatedIP      string         `gorm:"default:0.0.0.0;comment:创建外网IP" json:"created_ip,omitempty"`       // 创建外网IP
	SpecifyIP      string         `gorm:"default:0.0.0.0;index;comment:指定外网IP" json:"specify_ip,omitempty"` // 指定外网IP
	UpdatedIP      string         `gorm:"default:0.0.0.0;comment:更新外网IP" json:"updated_ip,omitempty"`       // 更新外网IP
	Result         string         `gorm:"comment:结果" json:"result,omitempty"`                               // 结果
	NextRunTime    time.Time      `gorm:"comment:下次运行时间" json:"next_run_time,omitempty"`                    // 下次运行时间
	CreatedAt      time.Time      `gorm:"autoCreateTime;comment:创建时间" json:"created_at,omitempty"`          // 创建时间
	UpdatedAt      time.Time      `gorm:"autoUpdateTime;comment:更新时间" json:"updated_at,omitempty"`          // 更新时间
	DeletedAt      gorm.DeletedAt `gorm:"index;comment:删除时间" json:"deleted_at,omitempty"`                   // 删除时间
}

GormModelTask 任务

type GormModelTaskLog

type GormModelTaskLog struct {
	LogID           uint      `gorm:"primaryKey;comment:【日志】编号" json:"log_id"`                            // 【日志】编号
	LogTime         time.Time `gorm:"autoCreateTime;index;comment:【日志】时间" json:"log_time"`                // 【日志】时间
	TaskID          uint      `gorm:"index;comment:【任务】编号" json:"task_id"`                                // 【任务】编号
	TaskRunID       string    `gorm:"comment:【任务】执行编号" json:"task_run_id"`                                //【任务】执行编号
	TaskResultCode  int       `gorm:"index;comment:【任务】执行状态码" json:"task_result_code"`                    //【任务】执行状态码
	TaskResultDesc  string    `gorm:"comment:【任务】执行结果" json:"task_result_desc"`                           //【任务】执行结果
	SystemInsideIP  string    `gorm:"default:0.0.0.0;comment:【系统】内网IP" json:"system_inside_ip,omitempty"` //【系统】内网IP
	SystemOutsideIP string    `gorm:"default:0.0.0.0;comment:【系统】外网IP" json:"system_outside_ip"`          //【系统】外网IP
}

GormModelTaskLog 任务日志

type Hour

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

Hour 每天n点执行一次

func GetHour

func GetHour(n int64) *Hour

GetHour 每天n点执行一次

func (Hour) Frequency

func (s Hour) Frequency() int64

Frequency 每天n点执行一次

func (Hour) Spec

func (s Hour) Spec() string

Spec 每天n点执行一次

type HourInterval

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

HourInterval 每隔n小时执行一次

func GetHourInterval

func GetHourInterval(n int64) *HourInterval

GetHourInterval 每隔n小时执行一次

func (HourInterval) Frequency

func (s HourInterval) Frequency() int64

Frequency 每隔n小时执行一次

func (HourInterval) Spec

func (s HourInterval) Spec() string

Spec 每隔n小时执行一次

type Minutes

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

Minutes 每隔n分钟执行一次

func GetMinutes

func GetMinutes(n int64) *Minutes

GetMinutes 每隔n分钟执行一次

func (Minutes) Frequency

func (s Minutes) Frequency() int64

Frequency 每隔n分钟执行一次

func (Minutes) Spec

func (s Minutes) Spec() string

Spec 每隔n分钟执行一次

type PubSubClient

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

func NewPubSub

func NewPubSub(ctx context.Context, client *redis.Client) *PubSubClient

func (*PubSubClient) DbRunSingleTask

func (c *PubSubClient) DbRunSingleTask(ctx context.Context, message string, executionCallback func(ctx context.Context, task *GormModelTask) (runCode int, runDesc string), updateCallback func(ctx context.Context, task *GormModelTask, result *TaskHelperRunSingleTaskResponse) (err error))

DbRunSingleTask 运行单个任务 ctx 链路追踪的上下文 message 任务json编码 executionCallback 执行任务回调函数 返回 runCode=状态 runDesc=描述 updateCallback 执行更新回调函数

func (*PubSubClient) PSubscribe

func (c *PubSubClient) PSubscribe(ctx context.Context, channel ...string) *redis.PubSub

PSubscribe 订阅,支持通配符匹配(ch_user_*)

func (*PubSubClient) Publish

func (c *PubSubClient) Publish(ctx context.Context, channel string, message interface{}) error

Publish 发布

func (*PubSubClient) Subscribe

func (c *PubSubClient) Subscribe(ctx context.Context, channel ...string) *redis.PubSub

Subscribe 订阅

type Seconds

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

Seconds 每隔n秒执行一次

func GetSeconds

func GetSeconds(n int64) *Seconds

GetSeconds 每隔n秒执行一次

func (Seconds) Frequency

func (s Seconds) Frequency() int64

Frequency 每隔n秒执行一次

func (Seconds) Spec

func (s Seconds) Spec() string

Spec 每隔n秒执行一次

type SubscribeResult

type SubscribeResult struct {
	Message *redis.PubSub
	// contains filtered or unexported fields
}

type TaskCustomHelper

type TaskCustomHelper struct {
	Ctx  context.Context // [启动]上下文
	Span trace.Span      // [启动]链路追踪
	// contains filtered or unexported fields
}

func NewTaskCustomHelper

func NewTaskCustomHelper(rootCtx context.Context, taskType string, opts ...TaskHelperOption) *TaskCustomHelper

NewTaskCustomHelper 任务帮助 rootCtx 链路追踪的上下文 taskType 任务类型 logIsDebug 日志是否启动 traceIsFilter 链路追踪是否过滤

func (*TaskCustomHelper) EndRunTaskList

func (th *TaskCustomHelper) EndRunTaskList()

EndRunTaskList 结束运行任务列表并停止OpenTelemetry链路追踪

func (*TaskCustomHelper) GetTaskList

func (th *TaskCustomHelper) GetTaskList() []*TaskCustomHelperTaskList

GetTaskList 请在QueryTaskList之后获取任务列表

func (*TaskCustomHelper) QueryTaskList

func (th *TaskCustomHelper) QueryTaskList(rootCtx context.Context, isRunCallback func(ctx context.Context, keyName string) (isUse bool, result *redis.StringCmd), listCallback func(ctx context.Context, taskType string) []*TaskCustomHelperTaskList) (isContinue bool)

QueryTaskList 通过回调函数获取任务列表 rootCtx 链路追踪的上下文 isRunCallback 任务列表回调函数 返回 是否使用 任务列表 listCallback 任务回调函数 返回 任务列表 newTaskLists 新的任务列表 isContinue 是否继续

func (*TaskCustomHelper) RunMultipleTask

func (th *TaskCustomHelper) RunMultipleTask(rootCtx context.Context, wait int64, executionCallback func(ctx context.Context, task *TaskCustomHelperTaskList) (err error), startCallback func(ctx context.Context, taskType string) (err error), endCallback func(ctx context.Context, taskType string))

RunMultipleTask 运行多个任务 rootCtx 链路追踪的上下文 wait 等待时间(秒) executionCallback 执行任务回调函数 startCallback 开始任务回调函数 endCallback 结束任务回调函数

func (*TaskCustomHelper) RunSingleTask

func (th *TaskCustomHelper) RunSingleTask(rootCtx context.Context, task *TaskCustomHelperTaskList, executionCallback func(ctx context.Context, task *TaskCustomHelperTaskList) (err error))

RunSingleTask 运行单个任务 rootCtx 链路追踪的上下文 task 任务 executionCallback 执行任务回调函数

type TaskCustomHelperTaskList

type TaskCustomHelperTaskList struct {
	TaskID        string `json:"task_id,omitempty"`        // 任务编号
	TaskName      string `json:"task_name,omitempty"`      // 任务名称
	TaskParams    string `json:"task_params,omitempty"`    // 任务参数
	CustomID      string `json:"custom_id,omitempty"`      // 自定义编号
	CustomContent string `json:"custom_content,omitempty"` // 自定义内容
}

type TaskHelper

type TaskHelper struct {
	Ctx  context.Context // [启动]上下文
	Span trace.Span      // [启动]链路追踪
	// contains filtered or unexported fields
}

func NewTaskHelper

func NewTaskHelper(rootCtx context.Context, taskType string, opts ...TaskHelperOption) *TaskHelper

NewTaskHelper 任务帮助 ctx 链路追踪的上下文 taskType 任务类型 logIsDebug 日志是否启动 traceIsFilter 链路追踪是否过滤

func (*TaskHelper) EndRunTaskList

func (th *TaskHelper) EndRunTaskList()

EndRunTaskList 结束运行任务列表并停止OpenTelemetry链路追踪

func (*TaskHelper) FilterTaskList

func (th *TaskHelper) FilterTaskList(rootCtx context.Context, isMandatoryIp bool, specifyIp string) (isContinue bool)

FilterTaskList 过滤任务列表 rootCtx 链路追踪的上下文 isMandatoryIp 强制当前ip specifyIp 指定Ip isContinue 是否继续

func (*TaskHelper) GetTaskList

func (th *TaskHelper) GetTaskList() []*GormModelTask

GetTaskList 请在FilterTaskList之后获取任务列表

func (*TaskHelper) QueryTaskList

func (th *TaskHelper) QueryTaskList(rootCtx context.Context, isRunCallback func(ctx context.Context, keyName string) (isUse bool, result *redis.StringCmd), listCallback func(ctx context.Context, taskType string) []*GormModelTask) (isContinue bool)

QueryTaskList 通过回调函数获取任务列表 rootCtx 链路追踪的上下文 isRunCallback 任务列表回调函数 返回 是否使用 任务列表 listCallback 任务回调函数 返回 任务列表 newTaskLists 新的任务列表 isContinue 是否继续

func (*TaskHelper) RunMultipleTask

func (th *TaskHelper) RunMultipleTask(rootCtx context.Context, wait int64, executionCallback func(ctx context.Context, task *GormModelTask) (runCode int, runDesc string), updateCallback func(ctx context.Context, task *GormModelTask, result *TaskHelperRunSingleTaskResponse), startCallback func(ctx context.Context, taskType string) (err error), endCallback func(ctx context.Context, taskType string))

RunMultipleTask 运行多个任务 rootCtx 链路追踪的上下文 wait 等待时间(秒) executionCallback 执行任务回调函数 返回 runCode=状态 runDesc=描述 updateCallback 执行更新回调函数 startCallback 开始任务回调函数 endCallback 结束任务回调函数

func (*TaskHelper) RunSingleTask

func (th *TaskHelper) RunSingleTask(rootCtx context.Context, task *GormModelTask, executionCallback func(ctx context.Context, task *GormModelTask) (runCode int, runDesc string), updateCallback func(ctx context.Context, task *GormModelTask, result *TaskHelperRunSingleTaskResponse))

RunSingleTask 运行单个任务 rootCtx 链路追踪的上下文 task 任务 executionCallback 执行任务回调函数 返回 runCode=状态 runDesc=描述 updateCallback 执行更新回调函数

type TaskHelperOption

type TaskHelperOption interface {
	// contains filtered or unexported methods
}

func TaskHelperWithDebug

func TaskHelperWithDebug(is bool) TaskHelperOption

TaskHelperWithDebug 设置日志是否打印

func TaskHelperWithFilter

func TaskHelperWithFilter(is bool, keyName string, keyValue string) TaskHelperOption

TaskHelperWithFilter 设置链路追踪是否过滤

type TaskHelperRunSingleTaskResponse

type TaskHelperRunSingleTaskResponse struct {
	RunID   string `json:"run_id"`   // 运行编号
	RunCode int    `json:"run_code"` // 运行状态
	RunDesc string `json:"run_desc"` // 运行描述

	TraceID   string `json:"trace_id"`   // 追踪编号
	SpanID    string `json:"span_id"`    // 跨度编号
	RequestID string `json:"request_id"` // 请求编号
}

type TaskLockOperation

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

func (*TaskLockOperation) Lock

func (tlo *TaskLockOperation) Lock(ctx context.Context, id any) error

Lock 上锁

func (*TaskLockOperation) LockCustomId

func (tlo *TaskLockOperation) LockCustomId(ctx context.Context) error

LockCustomId 上锁

func (*TaskLockOperation) LockForever

func (tlo *TaskLockOperation) LockForever(ctx context.Context, id any) error

LockForever 永远上锁

func (*TaskLockOperation) LockForeverCustomId

func (tlo *TaskLockOperation) LockForeverCustomId(ctx context.Context) error

LockForeverCustomId 永远上锁

func (*TaskLockOperation) LockForeverId

func (tlo *TaskLockOperation) LockForeverId(ctx context.Context) error

LockForeverId 永远上锁

func (*TaskLockOperation) LockId

func (tlo *TaskLockOperation) LockId(ctx context.Context) error

LockId 上锁

func (*TaskLockOperation) Unlock

func (tlo *TaskLockOperation) Unlock(ctx context.Context, id any) error

Unlock 解锁

func (*TaskLockOperation) UnlockCustomId

func (tlo *TaskLockOperation) UnlockCustomId(ctx context.Context) error

UnlockCustomId 解锁

func (*TaskLockOperation) UnlockId

func (tlo *TaskLockOperation) UnlockId(ctx context.Context) error

UnlockId 解锁

Jump to

Keyboard shortcuts

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