wrapchinery

package module
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: May 23, 2024 License: MIT Imports: 14 Imported by: 0

README

wrapchinery

Wrapped machinery package (v2) to send tasks more easily

Usage

Call wrapchinery.NewServer() instead of machinery.NewServer()

import (
github.com/gempages/wrapchinery
)

server := wrapchinery.NewServer(...)

Use wrapped functions:

// Create new worker
server.WrapNewWorker(concurrency int) *machinery.Worker
// Send a task
server.WrapSendTask(taskName string, delay time.Duration, retry int, args ...interface{}) (*result.AsyncResult, error)
// Send a task with context
server.WrapSendTaskWithContext(taskName string, ctx context.Context, delay time.Duration, retry int, args ...interface{}) (*result.AsyncResult, error)

Helper function to ease the pain of creating Signature:

wrapchinery.GetTaskSignature(taskName string, delay time.Duration, retry int, args ...interface{}) *tasks.Signature

Documentation

Index

Constants

View Source
const ShopIDHeader = "shopID"

Variables

This section is empty.

Functions

func GetTaskSignature

func GetTaskSignature(cfg *TaskConfig, args ...interface{}) *tasks.Signature

GetTaskSignature returns machinery's task signature object to use with SendTask and SendTaskWithContext functions

func SetupLoggers

func SetupLoggers()

Types

type Server

type Server struct {
	machinery.Server
}

func NewServer

func NewServer(
	cnf *config.Config, brokerServer brokersiface.Broker,
	backendServer backendsiface.Backend, lock lockiface.Lock,
) *Server

NewServer creates Server instance

func (*Server) WrapNewWorker

func (m *Server) WrapNewWorker(concurrency int) *machinery.Worker

WrapNewWorker creates a new machinery worker with a random UUID as tag

func (*Server) WrapSendTask

func (m *Server) WrapSendTask(cfg *TaskConfig, args ...interface{}) (*result.AsyncResult, error)

WrapSendTask calls machinery's SendTask function with task signature created using GetTaskSignature function

func (*Server) WrapSendTaskWithContext

func (m *Server) WrapSendTaskWithContext(ctx context.Context, cfg *TaskConfig, args ...interface{}) (*result.AsyncResult, error)

type TaskConfig added in v1.0.5

type TaskConfig struct {
	Name       string
	ShopID     uint64
	Delay      time.Duration
	RetryCount int
	OnSuccess  *TaskConfig
	OnError    *TaskConfig
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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