feat: add asynq worker skeleton

This commit is contained in:
Philipp
2026-06-11 09:48:29 +02:00
parent fd9a99a6d8
commit e34dc28fd3
9 changed files with 255 additions and 1 deletions
+46
View File
@@ -0,0 +1,46 @@
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
}