worker

package
v0.0.0-...-ac0e98d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 23, 2024 License: MIT Imports: 22 Imported by: 0

Documentation

Overview

Package worker provides support for distributing and processing tasks.

Index

Constants

View Source
const (
	QueueCritical = "critical"
	QueueDefault  = "default"
)
View Source
const TaskSendNotification = "task:send_notification"
View Source
const TaskSendVerifyEmail = "task:send_verify_email"

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Log      *zerolog.Logger
	DB       *sqlx.DB
	RedisOpt asynq.RedisClientOpt
	Mailer   mailer.Mailer
}

Config represents the configuration needed to create a Worker instance.

type Logger

type Logger struct {
}

func NewLogger

func NewLogger() *Logger

func (*Logger) Debug

func (logger *Logger) Debug(args ...interface{})

func (*Logger) Error

func (logger *Logger) Error(args ...interface{})

func (*Logger) Fatal

func (logger *Logger) Fatal(args ...interface{})

func (*Logger) Info

func (logger *Logger) Info(args ...interface{})

func (*Logger) Print

func (logger *Logger) Print(level zerolog.Level, args ...interface{})

func (*Logger) Printf

func (logger *Logger) Printf(ctx context.Context, format string, v ...interface{})

func (*Logger) Warn

func (logger *Logger) Warn(args ...interface{})

type PayloadSendNotification

type PayloadSendNotification struct {
	NotificationID uuid.UUID `json:"notification_id"`
}

type PayloadSendVerifyEmail

type PayloadSendVerifyEmail struct {
	Email string `json:"email"`
}

type RedisTaskDistributor

type RedisTaskDistributor struct {
	// contains filtered or unexported fields
}

RedisTaskDistributor distributes tasks using Redis.

func (*RedisTaskDistributor) DistributeTaskSendNotification

func (distributor *RedisTaskDistributor) DistributeTaskSendNotification(ctx context.Context, payload *PayloadSendNotification, opts ...asynq.Option) error

func (*RedisTaskDistributor) DistributeTaskSendVerifyEmail

func (distributor *RedisTaskDistributor) DistributeTaskSendVerifyEmail(ctx context.Context, payload *PayloadSendVerifyEmail, opts ...asynq.Option) error

DistributeTaskSendVerifyEmail enqueues a task to send a verification email.

type RedisTaskProcessor

type RedisTaskProcessor struct {
	// contains filtered or unexported fields
}

RedisTaskProcessor processes tasks using Redis.

func (*RedisTaskProcessor) ProcessTaskSendNotification

func (processor *RedisTaskProcessor) ProcessTaskSendNotification(ctx context.Context, task *asynq.Task) error

func (*RedisTaskProcessor) ProcessTaskSendVerifyEmail

func (processor *RedisTaskProcessor) ProcessTaskSendVerifyEmail(ctx context.Context, task *asynq.Task) error

ProcessTaskSendVerifyEmail processes the task to send a verification email.

func (*RedisTaskProcessor) Shutdown

func (processor *RedisTaskProcessor) Shutdown()

func (*RedisTaskProcessor) Start

func (processor *RedisTaskProcessor) Start() error

type TaskDistributor

type TaskDistributor interface {
	DistributeTaskSendVerifyEmail(
		ctx context.Context,
		payload *PayloadSendVerifyEmail,
		opts ...asynq.Option,
	) error
	DistributeTaskSendNotification(
		ctx context.Context,
		payload *PayloadSendNotification,
		opts ...asynq.Option,
	) error
}

TaskDistributor defines the interface for task distribution.

type TaskProcessor

type TaskProcessor interface {
	Start() error
	Shutdown()
	ProcessTaskSendVerifyEmail(ctx context.Context, task *asynq.Task) error
	ProcessTaskSendNotification(ctx context.Context, task *asynq.Task) error
}

TaskProcessor defines the interface for task processing.

type Worker

type Worker struct {
	TaskDistributor
	TaskProcessor
}

Worker contains configuration for task distribution and processing.

func New

func New(cfg Config) *Worker

New initializes and returns a new Worker instance.

Directories

Path Synopsis
Package mocktd is a generated GoMock package.
Package mocktd is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL