Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Component = compogo.Component{ Dependencies: compogo.Components{ &runner.Component, &repeater.Component, }, Init: compogo.StepFunc(func(container compogo.Container) error { return container.Provides( newManager, func(m *manager) Manager { return m }, ) }), Stop: compogo.StepFunc(func(container compogo.Container) error { return container.Invoke(func(m Manager) error { return m.Close() }) }), }
Component — компонент менеджера отложенных задач для Compogo. Регистрирует менеджер в DI-контейнере.
Пример:
app.AddComponents(&deferred_task.Component)
var m deferred_task.Manager
container.Invoke(func(manager deferred_task.Manager) { m = manager })
task := deferred_task.NewTask("cleanup", time.Minute, cleanupFunc, deferred_task.One)
m.AddTask(task)
Functions ¶
This section is empty.
Types ¶
type Manager ¶
type Manager interface {
io.Closer
AddTasks(...*Task) error
AddTask(*Task) error
RemoveTaskByName(string) error
RemoveTask(*Task) error
HasTask(*Task) bool
HasTaskByName(string) bool
}
Manager — менеджер отложенных задач. Управляет задачами, которые должны быть выполнены после задержки.
Поддерживает:
- Добавление и удаление задач
- Однократное и повторное выполнение
- Graceful shutdown через io.Closer
type Task ¶
Task — отложенная задача. Расширяет repeater.Task, добавляя стратегию выполнения (однократно или повторно).
func NewTask ¶
func NewTask(name string, delay time.Duration, processFunc runner.ProcessFunc, strategy Strategy, middlewares ...runner.Middleware) *Task
NewTask создаёт новую отложенную задачу.
Параметры:
- name — имя задачи
- delay — задержка перед выполнением
- processFunc — функция выполнения
- strategy — стратегия (One или Repeated)
- middlewares — опциональные middleware
Пример:
task := deferred_task.NewTask("cleanup", time.Minute, func(ctx context.Context) error {
// очистка кэша
return nil
}, deferred_task.One)
Click to show internal directories.
Click to hide internal directories.