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 }