43 lines
1.5 KiB
Go
43 lines
1.5 KiB
Go
package tasks
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.ostiwe.com/ostiwe-com/status/modules/log"
|
|
)
|
|
|
|
var (
|
|
DefaultFallbackFn = func(_ context.Context, _ error) (bool, error) {
|
|
log.Global.Get(log.QUEUE).Info("Default fallback function triggered")
|
|
|
|
return true, nil
|
|
}
|
|
DefaultAfterHandleFn = func(_ context.Context, _ []byte) error {
|
|
log.Global.Get(log.QUEUE).Info("Default after handler function triggered")
|
|
|
|
return nil
|
|
}
|
|
)
|
|
|
|
// Task represents a task that can be executed in the queue.
|
|
//
|
|
// Name returns the name of the task, used for logging and identification purposes.
|
|
//
|
|
// Handle processes a message from the queue. It takes a context and the raw message body ([]byte) as arguments.
|
|
// If handling fails, it should return an error that can be caught in the Fallback method.
|
|
//
|
|
// AfterHandle performs some action after successfully processing the message with Handle.
|
|
// It takes the same arguments as Handle: a context and the raw message body ([]byte).
|
|
// Default is DefaultAfterHandleFn
|
|
//
|
|
// Fallback handles errors that occur during the execution of the Handle method.
|
|
// It takes a context and an error as arguments. The method should return a boolean indicating whether the error was handled,
|
|
// and error for additional logging or debugging information.
|
|
// Default is DefaultFallbackFn
|
|
type Task struct {
|
|
Name string
|
|
Handle func(ctx context.Context, msgBody []byte) error
|
|
AfterHandle func(ctx context.Context, msgBody []byte) error
|
|
Fallback func(ctx context.Context, err error) (bool, error)
|
|
}
|