Files
contracts/job.go
T
what 8b122816a1 重构: 各类型 Controller 接口精简,配合 framework-v2 internal/handler 收拢公共实现
app.go/condflow.go/cron.go/event_stream.go/executor.go/gobridge.go/grpc.go/job.go/mcp.go/mqtt.go/res_virtual_table.go/ws.go/controller.go/support/service.go 精简掉搬到 framework-v2 internal/handler 里的公共默认实现,只保留接口定义。
2026-07-22 09:14:57 +08:00

31 lines
849 B
Go

package contracts
import "git.fsdpf.net/go/req"
type JobService interface {
Start() error
Shutdown() error
Restart() error
Dispatch(job string, payload any, u req.User) error
}
type Job interface {
Controller
// 任务处理
Handle(any, req.User) error
// OnExceeded 重试次数耗尽时由框架回调,用于清理状态。默认实现为空操作。
OnExceeded(any, req.User) error
}
// NoRetryError 表示不可重试的错误,job 返回此类型后框架立即标记为 exceeded,不再调度重试。
type NoRetryError struct {
Err error
}
func (e *NoRetryError) Error() string { return e.Err.Error() }
func (e *NoRetryError) Unwrap() error { return e.Err }
// ErrNoRetry 将 err 包装为不可重试错误,job handler 使用此函数终止重试。
func ErrNoRetry(err error) error { return &NoRetryError{Err: err} }