Documentation
¶
Index ¶
- Constants
- func CamelToSnake(name string) string
- func RunInTransaction(db *sql.DB, f func(tx *sql.Tx) error) error
- func SetFieldValue(field reflect.Value, value any)
- type FieldMeta
- type Schedule
- type Scheduler
- func (w *Scheduler[S]) Create(tx *sql.Tx, schedule *S) error
- func (w *Scheduler[S]) Delete(tx *sql.Tx, pk any) error
- func (w *Scheduler[S]) DeleteAll(tx *sql.Tx) error
- func (w *Scheduler[S]) FindAllActive(tx *sql.Tx, moment time.Time) ([]*S, error)
- func (w *Scheduler[S]) Save(tx *sql.Tx, schedule *S) error
- func (w *Scheduler[S]) Start()
- func (w *Scheduler[S]) StartContext(ctx context.Context)
- func (w *Scheduler[S]) Stop()
- type SchedulerConfig
- type SchedulerHandler
- type Status
- type TableMeta
- type Tabler
- type Task
- type TaskFunc
- type TaskHandler
- type TaskRegistry
- func (r *TaskRegistry) ApplyAsync(tx *sql.Tx, name string, args any, countdown *int, eta *time.Time) error
- func (r *TaskRegistry) Call(tx *sql.Tx, name string, args any) (any, error)
- func (r *TaskRegistry) Delay(tx *sql.Tx, name string, args any, countdown *int, eta *time.Time) error
- func (r *TaskRegistry) Register(name string, f TaskFunc)
- func (r *TaskRegistry) Unregister(name string)
- type Worker
- func (w *Worker[T]) Create(tx *sql.Tx, t *T) error
- func (w *Worker[T]) DeleteAll(tx *sql.Tx) error
- func (w *Worker[T]) DeleteOld(tx *sql.Tx, moment time.Time) (int, error)
- func (w *Worker[T]) FindNext(tx *sql.Tx) (*T, error)
- func (w *Worker[T]) Save(tx *sql.Tx, t *T) error
- func (w *Worker[T]) Start()
- func (w *Worker[T]) StartContext(ctx context.Context)
- func (w *Worker[T]) Stop()
- type WorkerConfig
Constants ¶
View Source
const IgnoreResult = "IgnoreResult"
Variables ¶
This section is empty.
Functions ¶
func CamelToSnake ¶ added in v0.5.0
func SetFieldValue ¶ added in v0.5.0
Types ¶
type Schedule ¶ added in v0.5.0
type Scheduler ¶ added in v0.5.0
type Scheduler[S any] struct { // contains filtered or unexported fields }
func NewScheduler ¶ added in v0.5.0
func NewScheduler[S any](db *sql.DB, config ...SchedulerConfig[S]) *Scheduler[S]
func (*Scheduler[S]) FindAllActive ¶ added in v0.5.0
func (*Scheduler[S]) StartContext ¶ added in v0.5.0
type SchedulerConfig ¶ added in v0.5.0
type SchedulerConfig[S any] struct { Log *slog.Logger Cron string Handler SchedulerHandler[S] }
type SchedulerHandler ¶ added in v0.5.0
func DefaultSchedulerHandler ¶ added in v0.5.0
func DefaultSchedulerHandler(worker *Worker[Task]) SchedulerHandler[Schedule]
type TableMeta ¶ added in v0.5.0
func GetTableMeta ¶ added in v0.5.0
func GetTableMeta(t interface{}) TableMeta
type Task ¶ added in v0.5.0
type TaskHandler ¶ added in v0.5.0
func DefaultRegistryTaskHandler ¶ added in v0.5.0
func DefaultRegistryTaskHandler(registry *TaskRegistry) TaskHandler[Task]
type TaskRegistry ¶ added in v0.5.0
type TaskRegistry struct {
// contains filtered or unexported fields
}
func NewTaskRegistry ¶ added in v0.5.0
func NewTaskRegistry() *TaskRegistry
func (*TaskRegistry) ApplyAsync ¶ added in v0.5.0
func (*TaskRegistry) Register ¶ added in v0.5.0
func (r *TaskRegistry) Register(name string, f TaskFunc)
func (*TaskRegistry) Unregister ¶ added in v0.5.0
func (r *TaskRegistry) Unregister(name string)
type Worker ¶ added in v0.5.0
type Worker[T any] struct { // contains filtered or unexported fields }
func NewWorker ¶ added in v0.5.0
func NewWorker[T any](db *sql.DB, config ...WorkerConfig[T]) *Worker[T]
func (*Worker[T]) StartContext ¶ added in v0.5.0
type WorkerConfig ¶ added in v0.5.0
type WorkerConfig[T any] struct { Log *slog.Logger Cron string Handler TaskHandler[T] }
Click to show internal directories.
Click to hide internal directories.