Files

47 lines
944 B
Go

package tasks
import (
"context"
"encoding/json"
"fmt"
"log/slog"
"github.com/hibiken/asynq"
)
const TypeDummy = "proxui.dummy"
type DummyPayload struct {
Message string `json:"message"`
}
func NewDummyTask(message string) (*asynq.Task, error) {
payload, err := json.Marshal(DummyPayload{Message: message})
if err != nil {
return nil, err
}
return asynq.NewTask(TypeDummy, payload), nil
}
type DummyHandler struct {
logger *slog.Logger
}
func NewDummyHandler(logger *slog.Logger) DummyHandler {
return DummyHandler{logger: logger}
}
func (h DummyHandler) ProcessTask(_ context.Context, task *asynq.Task) error {
var payload DummyPayload
if err := json.Unmarshal(task.Payload(), &payload); err != nil {
return fmt.Errorf("decode dummy payload: %w", err)
}
if payload.Message == "" {
return fmt.Errorf("dummy message is required")
}
h.logger.Info("processed dummy job", "message", payload.Message)
return nil
}