manager

package module
v0.0.0-...-55e9f00 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2023 License: MIT Imports: 26 Imported by: 0

README

manager

Build Status | codecov | Go Report Card | GoDoc

A package that allows you to have all your processes and data organized and with control. After a read of the project https://gitlab.com/mandalore/go-app extracted some concepts.

If i miss something or you have something interesting, please be part of this project. Let me know! My contact is at the end.

With support for

  • Processes
  • Configurations (with reload and write options)
  • NSQ Consumers
  • NSQ Producers
  • Rabbitmq Consumers
  • Rabbitmq Producers
  • Database Connections
  • Web Servers
  • Gateways
  • Redis Connections
  • Work Queues (with FIFO and LIFO modes)
  • Bulk Work Queue (with FIFO and LIFO modes)

Dependecy Management

Dep

Project dependencies are managed using Dep. Read more about Dep.

  • Install dependencies: dep ensure
  • Update dependencies: dep ensure -update
Go
go get github.com/joaosoft/manager

Usage

This examples are available in the project at manager/examples

// --------- dummy process ---------
func dummy_process() error {
	logger.Info("hello, i'm exetuting the dummy process")
	return nil
}

// --------- dummy nsq ---------
type dummy_nsq_handler struct{}

func (dummy *dummy_nsq_handler) HandleMessage(msg *nsq.Message) error {
	logger.Infof("executing the handle message of NSQ with [ message: %s ]", string(msg.Body))
	return nil
}

// --------- dummy web http ---------
func dummy_web_http_handler(w http.ResponseWriter, r *http.Request) {
	type Example struct {
		Id   string `json:"Id"`
		Name string `json:"name"`
		Age  int    `json:"age"`
	}

	example := Example{Id: "123", Name: "joao", Age: 29}
	jsonIndent, _ := json.MarshalIndent(example, "", "    ")
	w.Write(jsonIndent)
}

// --------- dummy web echo ---------
func dummy_web_echo_handler(ctx echo.Context) error {
	type Example struct {
		Id   string `json:"Id"`
		Name string `json:"name"`
		Age  int    `json:"age"`
	}

	return ctx.JSON(http.StatusOK, Example{Id: ctx.Param("Id"), Name: "joao", Age: 29})
}

func work_handler(id string, data interface{}) error {
	logger.Infof("work with the Id %s and Data %s done!", id, data.(string))
	return nil
}

func usage() {
	//
	// Manager
	manager := NewManager()

	//
	// Manager: processes
	process := manager.NewSimpleProcess(dummy_process)
	if err := manager.AddProcess("process_1", process); err != nil {
		logger.Errorf("MAIN: error on processes %s", err)
	}

	//
	// nsq producer
	nsqConfigProducer := NewNSQConfig("topic_1", "channel_1", []string{"127.0.0.1:4150"}, []string{"127.0.0.1:4161"}, 30, 5)
	nsqProducer, _ := manager.NewSimpleNSQProducer(nsqConfigProducer)
	manager.AddNSQProducer("nsq_producer_1", nsqProducer)
	nsqProducer = manager.GetNSQProducer("nsq_producer_1")
	nsqProducer.Publish("topic_1", []byte("MENSAGEM ENVIADA PARA A NSQ"), 3)

	logger.Info("waiting 1 seconds...")
	<-time.After(time.Duration(1) * time.Second)

	//
	// Manager: nsq consumer
	nsqConfigConsumer := NewNSQConfig("topic_1", "channel_1", []string{"127.0.0.1:4161"}, []string{"127.0.0.1:4150"}, 30, 5)
	nsqConsumer, _ := manager.NewSimpleNSQConsumer(nsqConfigConsumer, &dummy_nsq_handler{})
	manager.AddProcess("nsq_consumer_1", nsqConsumer)

	//
	// Manager: configuration
	type dummy_config struct {
		App  string `json:"app"`
		User struct {
			Name   string `json:"name"`
			Age    int    `json:"age"`
			Random int    `json:"random"`
		} `json:"user"`
	}
	dir, _ := os.Getwd()
	obj := &dummy_config{}
	simpleConfig, _ := NewSimpleConfig(dir+"/bin/launcher/Data/config.json", obj)
	manager.AddConfig("config_1", simpleConfig)
	config := manager.GetConfig("config_1")

	jsonIndent, _ := json.MarshalIndent(config.GetObj(), "", "    ")
	logger.Infof("CONFIGURATION: %s", jsonIndent)

	// allows to set a new configuration and save in the file
	n := rand.Intn(9000)
	obj.User.Random = n
	logger.Infof("MAIN: Random: %d", n)
	config.Set(obj)
	if err := config.Save(); err != nil {
		logger.Error("MAIN: error whe saving configuration file")
	}

	//
	// Manager: web

	// web - with http
	web := manager.NewSimpleWebHttp(":8081")
	if err := manager.AddWeb("web_http", web); err != nil {
		logger.Error("error adding web process to Manager")
	}
	web = manager.GetWeb("web_http")
	web.AddRoute(http.MethodGet, "/web_http", dummy_web_http_handler)

	// web - with echo
	web = manager.NewSimpleWebEcho(":8082")
	if err := manager.AddWeb("web_echo", web); err != nil {
		logger.Error("error adding web process to Manager")
	}
	web = manager.GetWeb("web_echo")
	web.AddRoute(http.MethodGet, "/web_echo/:Id", dummy_web_echo_handler)
	go web.Start(&sync.WaitGroup{}) // starting this because of the gateway

	logger.Info("waiting 1 seconds...")
	<-time.After(time.Duration(1) * time.Second)

	//
	// Manager: gateway
	headers := map[string][]string{"Content-Type": {"application/json"}}

	gateway, err := manager.NewSimpleGateway()
    if err != nil {
		log.Errorf("%s", err)
	}

	manager.AddGateway("gateway_1", gateway)
	gateway = manager.GetGateway("gateway_1")
	status, bytes, err := gateway.Request(http.MethodGet, "http://127.0.0.1:8082", "/web_echo/123", headers, nil)
	logger.Infof("status: %d, response: %s, error? %t", status, string(bytes), err != nil)

	//
	// Manager: database

	// database - postgres
	postgresConfig := NewDBConfig("postgres", "postgres://user:password@localhost:7001?sslmode=disable")
	postgresConn := manager.NewSimpleDB(postgresConfig)
	manager.AddDB("postgres", postgresConn)

	// database - mysql
	mysqlConfig := NewDBConfig("mysql", "root:password@tcp(127.0.0.1:7002)/mysql")
	mysqlConn := manager.NewSimpleDB(mysqlConfig)
	manager.AddDB("mysql", mysqlConn)

	//
	// Manager: redis
	redisConfig := NewRedisConfig("127.0.0.1", 7100, 0, "")
	redisConn := manager.NewSimpleRedis(redisConfig)
	manager.AddRedis("redis", redisConn)

	//
	// Manager: workqueue
	workqueueConfig := NewWorkListConfig("queue_001", 1, 2, time.Second*2, FIFO)
	workqueue := manager.NewSimpleWorkList(workqueueConfig, work_handler, nil, nil)
	manager.AddWorkList("queue_001", workqueue)
	workqueue = manager.GetWorkList("queue_001")
	for i := 1; i <= 1000; i++ {
		go workqueue.AddWork(fmt.Sprintf("PROCESS: %d", i), fmt.Sprintf("THIS IS MY MESSAGE %d", i))
	}
	if err := workqueue.Start(&sync.WaitGroup{}); err != nil {
		logger.Errorf("MAIN: error on workqueue %s", err)
	}

	manager.Start()
}

Follow me at

Facebook: https://www.facebook.com/joaosoft

LinkedIn: https://www.linkedin.com/in/jo%C3%A3o-ribeiro-b2775438/

If you have something to add, please let me know joaosoft@gmail.com

Documentation

Overview

Manager helps you to manage you application

With support for Processes Configurations (with reload and write options) NSQ Consumers NSQ Producers database Connections Web Servers Gateways Redis Connections Work Queues (with FIFO and LIFO modes)

Usage at https://github.com/joaosoft/go-manager/tree/master/example

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Exists

func Exists(file string) bool

func GetEnv

func GetEnv() string

func NewConfig

func NewConfig() (*AppConfig, IConfig, error)

NewConfig ...

func ReadFile

func ReadFile(fileName string, obj interface{}) ([]byte, error)

func ReadFileLines

func ReadFileLines(fileName string) ([]string, error)

func WriteFile

func WriteFile(fileName string, obj interface{}) error

Types

type AppConfig

type AppConfig struct {
	Manager *ManagerConfig `json:"manager"`
}

AppConfig ...

type BulkWorkHandler

type BulkWorkHandler func([]*Work) error

BulkWorkHandler ...

type BulkWorkListConfig

type BulkWorkListConfig struct {
	Name       string        `json:"name"`
	MaxWorks   int           `json:"max_works"`
	MaxWorkers int           `json:"max_workers"`
	MaxRetries int           `json:"max_retries"`
	SleepTime  time.Duration `json:"sleep_time"`
	Mode       Mode          `json:"mode"`
}

BulkWorkListConfig ...

func NewBulkWorkListConfig

func NewBulkWorkListConfig(name string, maxWorks, maxWorkers, maxRetries int, sleepTime time.Duration, mode Mode) *BulkWorkListConfig

NewBulkWorkListConfig...

type BulkWorkRecoverHandler

type BulkWorkRecoverHandler func(list IList) error

BulkWorkRecoverHandler ...

type BulkWorkRecoverWastedRetriesHandler

type BulkWorkRecoverWastedRetriesHandler func(id string, data interface{}) error

BulkWorkRecoverWastedRetriesHandler ...

type BulkWorker

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

Worker ...

func NewBulkWorker

func NewBulkWorker(id int, config *BulkWorkListConfig, handler BulkWorkHandler, list IList, bulkWorkRecoverHandler BulkWorkRecoverHandler, bulkWorkRecoverOneHandler BulkWorkRecoverWastedRetriesHandler, logger logger.ILogger) *BulkWorker

NewBulkWorker ...

func (*BulkWorker) AddWork

func (bulkWorker *BulkWorker) AddWork(id string, data interface{}) error

AddWork ...

func (*BulkWorker) Start

func (bulkWorker *BulkWorker) Start() error

Start ...

func (*BulkWorker) Stop

func (bulkWorker *BulkWorker) Stop() error

Stop ...

type DBConfig

type DBConfig struct {
	Driver     string `json:"driver"`
	DataSource string `json:"datasource"`
}

DBConfig ...

func NewDBConfig

func NewDBConfig(driver, datasource string) *DBConfig

NewDBConfig...

func (*DBConfig) Connect

func (config *DBConfig) Connect() (*sql.DB, error)

Connect ...

type HandlerFunc

type HandlerFunc interface{}

type Headers

type Headers map[string][]string

Headers ...

type IConfig

type IConfig interface {
	Get(key string) interface{}
	GetString(key string) string
	GetBool(key string) bool
	GetInt(key string) int
	GetInt64(key string) int64
	GetFloat64(key string) float64
	GetTime(key string) time.Time
	GetDuration(key string) time.Duration
	GetStringSlice(key string) []string
	GetStringMap(key string) map[string]interface{}
	GetStringMapString(key string) map[string]string
	GetStringMapStringSlice(key string) map[string][]string

	GetObj() interface{}
	Set(config interface{})
	Save() error
	Reload() error
}

IConfig ...

func NewSimpleConfig

func NewSimpleConfig(file string, obj interface{}) (IConfig, error)

type IDB

type IDB interface {
	Get() *sql.DB
	Start(waitGroup ...*sync.WaitGroup) error
	Stop(waitGroup ...*sync.WaitGroup) error
	Started() bool
}

type IGateway

type IGateway interface {
	Request(method, host, endpoint string, contentType string, headers map[string][]string, body []byte) (int, []byte, error)
}

IGateway ...

type IList

type IList interface {
	Add(id string, data interface{}) error
	Remove(ids ...string) interface{}
	Size() int
	IsEmpty() bool
	Dump() string
}

IList ...

type INSQConsumer

type INSQConsumer interface {
	Start(waitGroup ...*sync.WaitGroup) error
	Stop(waitGroup ...*sync.WaitGroup) error
	HandleMessage(message *nsq.Message) error
	Started() bool
}

INSQConsumer ...

type INSQHandler

type INSQHandler interface {
	HandleMessage(message *nsq.Message) error
}

type INSQProducer

type INSQProducer interface {
	Start(waitGroup ...*sync.WaitGroup) error
	Stop(waitGroup ...*sync.WaitGroup) error
	Publish(topic string, body []byte, maxRetries int) error
	Ping() error
	Started() bool
}

INSQProducer ...

type IProcess

type IProcess interface {
	Start(waitGroup ...*sync.WaitGroup) error
	Stop(waitGroup ...*sync.WaitGroup) error
	Started() bool
}

IProcess ...

type IRabbitmqConsumer

type IRabbitmqConsumer interface {
	Start(waitGroup ...*sync.WaitGroup) error
	Stop(waitGroup ...*sync.WaitGroup) error
	Started() bool
}

IRabbitmqConsumer ...

type IRabbitmqProducer

type IRabbitmqProducer interface {
	Start(waitGroup ...*sync.WaitGroup) error
	Stop(waitGroup ...*sync.WaitGroup) error
	Publish(routingKey string, body []byte, reliable bool) error
	Started() bool
}

IRabbitmqProducer ...

type IRedis

type IRedis interface {
	Start(waitGroup ...*sync.WaitGroup) error
	Stop(waitGroup ...*sync.WaitGroup) error
	Started() bool

	Action(command string, arguments ...string) error

	Quit() (err error)
	Get(key string) (result []byte, err error)
	Type(key string) (result byte, err error)
	Set(key string, arg1 []byte) error
	Save() error
	AllKeys() (result []string, err error)
	Keys(key string) (result []string, err error)
	Exists(key string) (result bool, err error)
	Rename(key, arg1 string) error
	Info() (result map[string]string, err error)
	Ping() error
	Setnx(key string, arg1 []byte) (result bool, err error)
	Getset(key string, arg1 []byte) (result []byte, err error)
	Mget(key string, arg1 []string) (result [][]byte, err error)
	Incr(key string) (result int64, err error)
	Incrby(key string, arg1 int64) (result int64, err error)
	Decr(key string) (result int64, err error)
	Decrby(key string, arg1 int64) (result int64, err error)
	Del(key string) (result bool, err error)
	Randomkey() (result string, err error)
	Renamenx(key string, arg1 string) (result bool, err error)
	Dbsize() (result int64, err error)
	Expire(key string, arg1 int64) (result bool, err error)
	Ttl(key string) (result int64, err error)
	Rpush(key string, arg1 []byte) error
	Lpush(key string, arg1 []byte) error
	Lset(key string, arg1 int64, arg2 []byte) error
	Lrem(key string, arg1 []byte, arg2 int64) (result int64, err error)
	Llen(key string) (result int64, err error)
	Lrange(key string, arg1 int64, arg2 int64) (result [][]byte, err error)
	Ltrim(key string, arg1 int64, arg2 int64) error
	Lindex(key string, arg1 int64) (result []byte, err error)
	Lpop(key string) (result []byte, err error)
	Blpop(key string, timeout int) (result [][]byte, err error)
	Rpop(key string) (result []byte, err error)
	Brpop(key string, timeout int) (result [][]byte, err error)
	Rpoplpush(key string, arg1 string) (result []byte, err error)
	Brpoplpush(key string, arg1 string, timeout int) (result [][]byte, err error)
	Sadd(key string, arg1 []byte) (result bool, err error)
	Srem(key string, arg1 []byte) (result bool, err error)
	Sismember(key string, arg1 []byte) (result bool, err error)
	Smove(key string, arg1 string, arg2 []byte) (result bool, err error)
	Scard(key string) (result int64, err error)
	Sinter(key string, arg1 []string) (result [][]byte, err error)
	Sinterstore(key string, arg1 []string) error
	Sunion(key string, arg1 []string) (result [][]byte, err error)
	Sunionstore(key string, arg1 []string) error
	Sdiff(key string, arg1 []string) (result [][]byte, err error)
	Sdiffstore(key string, arg1 []string) error
	Smembers(key string) (result [][]byte, err error)
	Srandmember(key string) (result []byte, err error)
	Zadd(key string, arg1 float64, arg2 []byte) (result bool, err error)
	Zrem(key string, arg1 []byte) (result bool, err error)
	Zcard(key string) (result int64, err error)
	Zscore(key string, arg1 []byte) (result float64, err error)
	Zrange(key string, arg1 int64, arg2 int64) (result [][]byte, err error)
	Zrevrange(key string, arg1 int64, arg2 int64) (result [][]byte, err error)
	Zrangebyscore(key string, arg1 float64, arg2 float64) (result [][]byte, err error)
	Hget(key string, hashkey string) (result []byte, err error)
	Hset(key string, hashkey string, arg1 []byte) error
	Hgetall(key string) (result [][]byte, err error)
	Flushdb() error
	Flushall() error
	Move(key string, arg1 int64) (result bool, err error)
	Bgsave() error
	Lastsave() (result int64, err error)
	Publish(channel string, message []byte) (recieverCout int64, err error)
}

type IWeb

type IWeb interface {
	AddRoute(method, path string, handler HandlerFunc, middleware ...MiddlewareFunc) error
	AddRoutes(routes ...*Route) error
	AddNamespace(path string, middleware []MiddlewareFunc, routes ...*Route) error
	AddFilter(pattern string, position string, middleware MiddlewareFunc, method string, methods ...string)
	Start(waitGroup ...*sync.WaitGroup) error
	Stop(waitGroup ...*sync.WaitGroup) error
	Started() bool
	GetClient() interface{}
}

IConfig ...

type IWorkList

type IWorkList interface {
	Start(waitGroup ...*sync.WaitGroup) error
	Stop(waitGroup ...*sync.WaitGroup) error
	Started() bool
	AddWork(id string, work interface{})
}

type Manager

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

Manager ...

func NewManager

func NewManager(options ...ManagerOption) *Manager

NewManager ...

func (*Manager) AddConfig

func (manager *Manager) AddConfig(key string, config IConfig) error

AddConfig ...

func (*Manager) AddDB

func (manager *Manager) AddDB(key string, db IDB) error

AddDB ...

func (*Manager) AddGateway

func (manager *Manager) AddGateway(key string, gateway IGateway) error

AddGateway ...

func (*Manager) AddNSQConsumer

func (manager *Manager) AddNSQConsumer(key string, nsqConsumer INSQConsumer) error

AddNSQConsumer ...

func (*Manager) AddNSQProducer

func (manager *Manager) AddNSQProducer(key string, nsqProducer INSQProducer) error

AddNSQProducer ...

func (*Manager) AddProcess

func (manager *Manager) AddProcess(key string, process IProcess) error

AddProcess ...

func (*Manager) AddRabbitmqConsumer

func (manager *Manager) AddRabbitmqConsumer(key string, rabbitmqConsumer IRabbitmqConsumer) error

AddRabbitmqConsumer ...

func (*Manager) AddRabbitmqProducer

func (manager *Manager) AddRabbitmqProducer(key string, nsqProducer IRabbitmqProducer) error

AddRabbitmqProducer ...

func (*Manager) AddRedis

func (manager *Manager) AddRedis(key string, redis IRedis) error

AddRedis ...

func (*Manager) AddWeb

func (manager *Manager) AddWeb(key string, web IWeb) error

AddWeb ...

func (*Manager) AddWorkList

func (manager *Manager) AddWorkList(key string, worklist IWorkList) error

AddWorkList ...

func (*Manager) GetConfig

func (manager *Manager) GetConfig(key string) IConfig

GetConfig ...

func (*Manager) GetDB

func (manager *Manager) GetDB(key string) IDB

GetDB ...

func (*Manager) GetGateway

func (manager *Manager) GetGateway(key string) IGateway

GetGateway ...

func (*Manager) GetNSQConsumer

func (manager *Manager) GetNSQConsumer(key string) INSQConsumer

GetNSQConsumer ...

func (*Manager) GetNSQProducer

func (manager *Manager) GetNSQProducer(key string) INSQProducer

GetNSQProducer ...

func (*Manager) GetProcess

func (manager *Manager) GetProcess(key string) IProcess

GetProcess ...

func (*Manager) GetRabbitmqConsumer

func (manager *Manager) GetRabbitmqConsumer(key string) IRabbitmqConsumer

GetRabbitmqConsumer ...

func (*Manager) GetRabbitmqProducer

func (manager *Manager) GetRabbitmqProducer(key string) IRabbitmqProducer

GetRabbitmqProducer ...

func (*Manager) GetRedis

func (manager *Manager) GetRedis(key string) interface{}

GetRedis ...

func (*Manager) GetWeb

func (manager *Manager) GetWeb(key string) IWeb

GetWeb ...

func (*Manager) GetWorkList

func (manager *Manager) GetWorkList(key string) IWorkList

GetWorkList ...

func (*Manager) NewQueue

func (manager *Manager) NewQueue(options ...QueueOption) IList

NewQueue ...

func (*Manager) NewSimpleBulkWorkList

func (manager *Manager) NewSimpleBulkWorkList(config *BulkWorkListConfig, handler BulkWorkHandler, bulkWorkRecoverHandler BulkWorkRecoverHandler, bulkWorkRecoverWastedRetriesHandler BulkWorkRecoverWastedRetriesHandler) IWorkList

NewSimpleBulkWorkList ...

func (*Manager) NewSimpleConfig

func (manager *Manager) NewSimpleConfig(file string, obj interface{}) (IConfig, error)

NewSimpleConfig...

func (*Manager) NewSimpleDB

func (manager *Manager) NewSimpleDB(config *DBConfig) IDB

NewSimpleDB ...

func (*Manager) NewSimpleGateway

func (manager *Manager) NewSimpleGateway() (IGateway, error)

NewSimpleGateway ...

func (*Manager) NewSimpleNSQConsumer

func (manager *Manager) NewSimpleNSQConsumer(config *NSQConfig, handler INSQHandler) (INSQConsumer, error)

NewSimpleNSQConsumer ...

func (*Manager) NewSimpleNSQProducer

func (manager *Manager) NewSimpleNSQProducer(config *NSQConfig) (INSQProducer, error)

NewSimpleNSQProducer ...

func (*Manager) NewSimpleProcess

func (manager *Manager) NewSimpleProcess(function func() error) IProcess

NewSimpleProcess...

func (*Manager) NewSimpleRabbitmqConsumer

func (manager *Manager) NewSimpleRabbitmqConsumer(config *RabbitmqConfig, queue, bindingKey, tag string, handler RabbitmqHandler) (*SimpleRabbitmqConsumer, error)

func (*Manager) NewSimpleRabbitmqProducer

func (manager *Manager) NewSimpleRabbitmqProducer(config *RabbitmqConfig) (*SimpleRabbitmqProducer, error)

func (*Manager) NewSimpleRedis

func (manager *Manager) NewSimpleRedis(config *RedisConfig) IRedis

NewSimpleRedis ...

func (*Manager) NewSimpleWebEcho

func (manager *Manager) NewSimpleWebEcho(host string) IWeb

NewSimpleWebEcho...

func (*Manager) NewSimpleWebHttp

func (manager *Manager) NewSimpleWebHttp(host string) IWeb

NewSimpleWebHttp...

func (*Manager) NewSimpleWebServer

func (manager *Manager) NewSimpleWebServer(host string) IWeb

NewSimpleWebServer...

func (*Manager) NewSimpleWorkList

func (manager *Manager) NewSimpleWorkList(config *WorkListConfig, handler WorkHandler, workRecoverHandler WorkRecoverHandler, workRecoverWastedRetriesHandler WorkRecoverWastedRetriesHandler) IWorkList

NewSimpleWorkList ...

func (*Manager) Reconfigure

func (manager *Manager) Reconfigure(options ...ManagerOption)

Reconfigure ...

func (*Manager) RemoveConfig

func (manager *Manager) RemoveConfig(key string) (IConfig, error)

RemoveConfig ...

func (*Manager) RemoveDB

func (manager *Manager) RemoveDB(key string) (IDB, error)

RemoveDB ...

func (*Manager) RemoveGateway

func (manager *Manager) RemoveGateway(key string) (IGateway, error)

RemoveGateway ...

func (*Manager) RemoveNSQConsumer

func (manager *Manager) RemoveNSQConsumer(key string) (INSQConsumer, error)

RemoveNSQConsumer ...

func (*Manager) RemoveNSQProducer

func (manager *Manager) RemoveNSQProducer(key string) (INSQProducer, error)

RemoveNSQProducer ...

func (*Manager) RemoveProcess

func (manager *Manager) RemoveProcess(key string) (IProcess, error)

RemoveProcess ...

func (*Manager) RemoveRabbitmqConsumer

func (manager *Manager) RemoveRabbitmqConsumer(key string) (IRabbitmqConsumer, error)

RemoveRabbitmqConsumer ...

func (*Manager) RemoveRabbitmqProducer

func (manager *Manager) RemoveRabbitmqProducer(key string) (IRabbitmqProducer, error)

RemoveRabbitmqProducer ...

func (*Manager) RemoveRedis

func (manager *Manager) RemoveRedis(key string) (IRedis, error)

RemoveRedis ...

func (*Manager) RemoveWeb

func (manager *Manager) RemoveWeb(key string) (IWeb, error)

RemoveWeb ...

func (*Manager) RemoveWorkList

func (manager *Manager) RemoveWorkList(key string) (IWorkList, error)

RemoveWorkList ...

func (*Manager) Start

func (manager *Manager) Start() error

Start ...

func (*Manager) Started

func (manager *Manager) Started() bool

Started ...

func (*Manager) Stop

func (manager *Manager) Stop() error

Stop ...

type ManagerConfig

type ManagerConfig struct {
	Log struct {
		Level string `json:"level"`
	} `json:"log"`
}

ManagerConfig ...

type ManagerOption

type ManagerOption func(manager *Manager)

ManagerOption ...

func WithLogLevel

func WithLogLevel(level logger.Level) ManagerOption

WithLogLevel ...

func WithLogger

func WithLogger(logger logger.ILogger) ManagerOption

WithLogger ...

func WithQuitChannel

func WithQuitChannel(quit chan int) ManagerOption

WithQuitChannel ...

func WithRunInBackground

func WithRunInBackground(runInBackground bool) ManagerOption

WithRunInBackground ...

type MiddlewareFunc

type MiddlewareFunc interface{}

type Mode

type Mode int

Mode ...

const (
	// First In First Out
	FIFO Mode = iota
	// Last In Last Out
	LIFO
)

type NSQConfig

type NSQConfig struct {
	Lookupd      []string `json:"lookupd"`
	Nsqd         []string `json:"nsqd"`
	Topic        string   `json:"topic"`
	Channel      string   `json:"channel"`
	RequeueDelay int64    `json:"requeue_delay"`
	MaxInFlight  int      `json:"max_in_flight"`
	MaxAttempts  uint16   `json:"max_attempts"`
	AutoRespond  bool     `json:"auto_respond"`
}

NSQConfig ...

func NewNSQConfig

func NewNSQConfig(topic, channel string, lookupd, nsqd []string, requeueDelay int64, maxInFlight int) *NSQConfig

NewNSQConfig...

func (*NSQConfig) Connect

func (config *NSQConfig) Connect() (*nsq.Producer, error)

Connect ...

type Node

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

type Queue

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

Queue ...

func (*Queue) Add

func (queue *Queue) Add(id string, data interface{}) error

Add ...

func (*Queue) Dump

func (queue *Queue) Dump() string

Dump ...

func (*Queue) IsEmpty

func (queue *Queue) IsEmpty() bool

IsEmpty ...

func (*Queue) Reconfigure

func (queue *Queue) Reconfigure(options ...QueueOption)

Reconfigure ...

func (*Queue) Remove

func (queue *Queue) Remove(ids ...string) interface{}

Remove ...

func (*Queue) Size

func (queue *Queue) Size() int

Size ...

type QueueOption

type QueueOption func(queue *Queue)

QueueOption ...

func WithMaxSize

func WithMaxSize(size int) QueueOption

WithMaxSize ...

func WithMode

func WithMode(mode Mode) QueueOption

WithMode ...

type RabbitmqConfig

type RabbitmqConfig struct {
	Uri          string `json:"uri"`
	Exchange     string `json:"exchange"`
	ExchangeType string `json:"exchange_type"`
}

RabbitmqConfig ...

func NewRabbitmqConfig

func NewRabbitmqConfig(uri, exchange, exchangeType string) *RabbitmqConfig

NewRabbitmqConfig...

func (*RabbitmqConfig) Connect

func (config *RabbitmqConfig) Connect() (*amqp.Connection, error)

Connect ...

type RabbitmqHandler

type RabbitmqHandler func(message amqp.Delivery) error

type RedisConfig

type RedisConfig struct {
	Host     string `json:"host"`
	Port     int    `json:"port"`
	Database int    `json:"database"`
	Password string `json:"password"`
}

RedisConfig ...

func NewRedisConfig

func NewRedisConfig(host string, port int, database int, password string) *RedisConfig

NewRedisConfig...

func (*RedisConfig) Connect

func (config *RedisConfig) Connect() (redis.Client, error)

Connect ...

type Route

type Route struct {
	Method      string
	Path        string
	Handler     HandlerFunc
	Middlewares []MiddlewareFunc
}

func NewRoute

func NewRoute(method, path string, handler HandlerFunc, middleware ...MiddlewareFunc) *Route

type SimpleBulkWorkList

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

SimpleBulkWorkList ...

func (*SimpleBulkWorkList) AddWork

func (bulkWorklist *SimpleBulkWorkList) AddWork(id string, data interface{})

AddWork ...

func (*SimpleBulkWorkList) Start

func (bulkWorklist *SimpleBulkWorkList) Start(waitGroup ...*sync.WaitGroup) error

Start ...

func (*SimpleBulkWorkList) Started

func (bulkWorklist *SimpleBulkWorkList) Started() bool

Started ...

func (*SimpleBulkWorkList) Stop

func (bulkWorklist *SimpleBulkWorkList) Stop(waitGroup ...*sync.WaitGroup) error

Stop ...

type SimpleConfig

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

SimpleConfig ...

func (*SimpleConfig) Get

func (simple *SimpleConfig) Get(key string) interface{}

Get ...

func (*SimpleConfig) GetBool

func (simple *SimpleConfig) GetBool(key string) bool

GetBool ...

func (*SimpleConfig) GetDuration

func (simple *SimpleConfig) GetDuration(key string) time.Duration

GetDuration ...

func (*SimpleConfig) GetFloat64

func (simple *SimpleConfig) GetFloat64(key string) float64

GetFloat64 ...

func (*SimpleConfig) GetInt

func (simple *SimpleConfig) GetInt(key string) int

GetInt ...

func (*SimpleConfig) GetInt64

func (simple *SimpleConfig) GetInt64(key string) int64

GetInt64 ...

func (*SimpleConfig) GetObj

func (simple *SimpleConfig) GetObj() interface{}

GetObj ...

func (*SimpleConfig) GetString

func (simple *SimpleConfig) GetString(key string) string

GetString ...

func (*SimpleConfig) GetStringMap

func (simple *SimpleConfig) GetStringMap(key string) map[string]interface{}

GetStringMap ...

func (*SimpleConfig) GetStringMapString

func (simple *SimpleConfig) GetStringMapString(key string) map[string]string

GetStringMapString ...

func (*SimpleConfig) GetStringMapStringSlice

func (simple *SimpleConfig) GetStringMapStringSlice(key string) map[string][]string

GetStringMapStringSlice ...

func (*SimpleConfig) GetStringSlice

func (simple *SimpleConfig) GetStringSlice(key string) []string

GetStringSlice ...

func (*SimpleConfig) GetTime

func (simple *SimpleConfig) GetTime(key string) time.Time

GetTime ...

func (*SimpleConfig) Reload

func (simple *SimpleConfig) Reload() error

Update ...

func (*SimpleConfig) Save

func (simple *SimpleConfig) Save() error

Save ...

func (*SimpleConfig) Set

func (simple *SimpleConfig) Set(config interface{})

Set ...

type SimpleDB

type SimpleDB struct {
	*sql.DB
	// contains filtered or unexported fields
}

SimpleDB ...

func (*SimpleDB) Get

func (db *SimpleDB) Get() *sql.DB

Get ...

func (*SimpleDB) Start

func (db *SimpleDB) Start(waitGroup ...*sync.WaitGroup) error

Start ...

func (*SimpleDB) Started

func (db *SimpleDB) Started() bool

Started ...

func (*SimpleDB) Stop

func (db *SimpleDB) Stop(waitGroup ...*sync.WaitGroup) error

Stop ...

type SimpleGateway

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

SimpleGateway ...

func (*SimpleGateway) Request

func (gateway *SimpleGateway) Request(method, host, endpoint string, contentType string, headers map[string][]string, body []byte) (int, []byte, error)

Request ...

type SimpleNSQConsumer

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

SimpleNSQConsumer ...

func (*SimpleNSQConsumer) HandleMessage

func (consumer *SimpleNSQConsumer) HandleMessage(message *nsq.Message) error

HandleMessage ...

func (*SimpleNSQConsumer) Start

func (consumer *SimpleNSQConsumer) Start(waitGroup ...*sync.WaitGroup) error

Start ...

func (*SimpleNSQConsumer) Started

func (consumer *SimpleNSQConsumer) Started() bool

Stop ...

func (*SimpleNSQConsumer) Stop

func (consumer *SimpleNSQConsumer) Stop(waitGroup ...*sync.WaitGroup) error

Stop ...

type SimpleNSQProducer

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

Producer ...

func (*SimpleNSQProducer) Ping

func (producer *SimpleNSQProducer) Ping() error

Ping ...

func (*SimpleNSQProducer) Publish

func (producer *SimpleNSQProducer) Publish(topic string, body []byte, maxRetries int) error

Publish ...

func (*SimpleNSQProducer) Start

func (producer *SimpleNSQProducer) Start(waitGroup ...*sync.WaitGroup) error

Start ...

func (*SimpleNSQProducer) Started

func (producer *SimpleNSQProducer) Started() bool

Start ...

func (*SimpleNSQProducer) Stop

func (producer *SimpleNSQProducer) Stop(waitGroup ...*sync.WaitGroup) error

Stop ...

type SimpleProcess

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

SimpleProcess ...

func (*SimpleProcess) Start

func (process *SimpleProcess) Start(waitGroup ...*sync.WaitGroup) error

Start ...

func (*SimpleProcess) Started

func (process *SimpleProcess) Started() bool

Started ...

func (*SimpleProcess) Stop

func (process *SimpleProcess) Stop(waitGroup ...*sync.WaitGroup) error

Stop ...

type SimpleRabbitmqConsumer

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

func (*SimpleRabbitmqConsumer) Start

func (consumer *SimpleRabbitmqConsumer) Start(waitGroup ...*sync.WaitGroup) error

func (*SimpleRabbitmqConsumer) Started

func (consumer *SimpleRabbitmqConsumer) Started() bool

func (*SimpleRabbitmqConsumer) Stop

func (consumer *SimpleRabbitmqConsumer) Stop(waitGroup ...*sync.WaitGroup) error

type SimpleRabbitmqProducer

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

func (*SimpleRabbitmqProducer) Publish

func (producer *SimpleRabbitmqProducer) Publish(routingKey string, body []byte, reliable bool) error

func (*SimpleRabbitmqProducer) Start

func (producer *SimpleRabbitmqProducer) Start(waitGroup ...*sync.WaitGroup) error

func (*SimpleRabbitmqProducer) Started

func (producer *SimpleRabbitmqProducer) Started() bool

func (*SimpleRabbitmqProducer) Stop

func (producer *SimpleRabbitmqProducer) Stop(waitGroup ...*sync.WaitGroup) error

type SimpleRedis

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

SimpleRedis ...

func (*SimpleRedis) Action

func (redis *SimpleRedis) Action(command string, arguments ...string) error

Action ...

func (*SimpleRedis) AllKeys

func (redis *SimpleRedis) AllKeys() ([]string, error)

func (*SimpleRedis) Bgsave

func (redis *SimpleRedis) Bgsave() error

func (*SimpleRedis) Blpop

func (redis *SimpleRedis) Blpop(key string, timeout int) ([][]byte, error)

func (*SimpleRedis) Brpop

func (redis *SimpleRedis) Brpop(key string, timeout int) ([][]byte, error)

func (*SimpleRedis) Brpoplpush

func (redis *SimpleRedis) Brpoplpush(key string, arg1 string, timeout int) ([][]byte, error)

func (*SimpleRedis) Dbsize

func (redis *SimpleRedis) Dbsize() (result int64, err error)

func (*SimpleRedis) Decr

func (redis *SimpleRedis) Decr(key string) (int64, error)

func (*SimpleRedis) Decrby

func (redis *SimpleRedis) Decrby(key string, arg1 int64) (int64, error)

func (*SimpleRedis) Del

func (redis *SimpleRedis) Del(key string) (bool, error)

func (*SimpleRedis) Exists

func (redis *SimpleRedis) Exists(key string) (bool, error)

func (*SimpleRedis) Expire

func (redis *SimpleRedis) Expire(key string, arg1 int64) (bool, error)

func (*SimpleRedis) Flushall

func (redis *SimpleRedis) Flushall() error

func (*SimpleRedis) Flushdb

func (redis *SimpleRedis) Flushdb() error

func (*SimpleRedis) Get

func (redis *SimpleRedis) Get(key string) ([]byte, error)

func (*SimpleRedis) Getset

func (redis *SimpleRedis) Getset(key string, arg1 []byte) ([]byte, error)

func (*SimpleRedis) Hget

func (redis *SimpleRedis) Hget(key string, hashkey string) ([]byte, error)

func (*SimpleRedis) Hgetall

func (redis *SimpleRedis) Hgetall(key string) ([][]byte, error)

func (*SimpleRedis) Hset

func (redis *SimpleRedis) Hset(key string, hashkey string, arg1 []byte) error

func (*SimpleRedis) Incr

func (redis *SimpleRedis) Incr(key string) (int64, error)

func (*SimpleRedis) Incrby

func (redis *SimpleRedis) Incrby(key string, arg1 int64) (int64, error)

func (*SimpleRedis) Info

func (redis *SimpleRedis) Info() (map[string]string, error)

func (*SimpleRedis) Keys

func (redis *SimpleRedis) Keys(key string) ([]string, error)

func (*SimpleRedis) Lastsave

func (redis *SimpleRedis) Lastsave() (int64, error)

func (*SimpleRedis) Lindex

func (redis *SimpleRedis) Lindex(key string, arg1 int64) ([]byte, error)

func (*SimpleRedis) Llen

func (redis *SimpleRedis) Llen(key string) (int64, error)

func (*SimpleRedis) Lpop

func (redis *SimpleRedis) Lpop(key string) ([]byte, error)

func (*SimpleRedis) Lpush

func (redis *SimpleRedis) Lpush(key string, arg1 []byte) error

func (*SimpleRedis) Lrange

func (redis *SimpleRedis) Lrange(key string, arg1 int64, arg2 int64) ([][]byte, error)

func (*SimpleRedis) Lrem

func (redis *SimpleRedis) Lrem(key string, arg1 []byte, arg2 int64) (int64, error)

func (*SimpleRedis) Lset

func (redis *SimpleRedis) Lset(key string, arg1 int64, arg2 []byte) error

func (*SimpleRedis) Ltrim

func (redis *SimpleRedis) Ltrim(key string, arg1 int64, arg2 int64) error

func (*SimpleRedis) Mget

func (redis *SimpleRedis) Mget(key string, arg1 []string) ([][]byte, error)

func (*SimpleRedis) Move

func (redis *SimpleRedis) Move(key string, arg1 int64) (bool, error)

func (*SimpleRedis) Ping

func (redis *SimpleRedis) Ping() error

func (*SimpleRedis) Publish

func (redis *SimpleRedis) Publish(channel string, message []byte) (int64, error)

func (*SimpleRedis) Quit

func (redis *SimpleRedis) Quit() error

func (*SimpleRedis) Randomkey

func (redis *SimpleRedis) Randomkey() (string, error)

func (*SimpleRedis) Rename

func (redis *SimpleRedis) Rename(key, arg1 string) error

func (*SimpleRedis) Renamenx

func (redis *SimpleRedis) Renamenx(key string, arg1 string) (bool, error)

func (*SimpleRedis) Rpop

func (redis *SimpleRedis) Rpop(key string) ([]byte, error)

func (*SimpleRedis) Rpoplpush

func (redis *SimpleRedis) Rpoplpush(key string, arg1 string) ([]byte, error)

func (*SimpleRedis) Rpush

func (redis *SimpleRedis) Rpush(key string, arg1 []byte) error

func (*SimpleRedis) Sadd

func (redis *SimpleRedis) Sadd(key string, arg1 []byte) (bool, error)

func (*SimpleRedis) Save

func (redis *SimpleRedis) Save() error

func (*SimpleRedis) Scard

func (redis *SimpleRedis) Scard(key string) (int64, error)

func (*SimpleRedis) Sdiff

func (redis *SimpleRedis) Sdiff(key string, arg1 []string) ([][]byte, error)

func (*SimpleRedis) Sdiffstore

func (redis *SimpleRedis) Sdiffstore(key string, arg1 []string) error

func (*SimpleRedis) Set

func (redis *SimpleRedis) Set(key string, arg1 []byte) error

func (*SimpleRedis) Setnx

func (redis *SimpleRedis) Setnx(key string, arg1 []byte) (bool, error)

func (*SimpleRedis) Sinter

func (redis *SimpleRedis) Sinter(key string, arg1 []string) ([][]byte, error)

func (*SimpleRedis) Sinterstore

func (redis *SimpleRedis) Sinterstore(key string, arg1 []string) error

func (*SimpleRedis) Sismember

func (redis *SimpleRedis) Sismember(key string, arg1 []byte) (bool, error)

func (*SimpleRedis) Smembers

func (redis *SimpleRedis) Smembers(key string) ([][]byte, error)

func (*SimpleRedis) Smove

func (redis *SimpleRedis) Smove(key string, arg1 string, arg2 []byte) (bool, error)

func (*SimpleRedis) Srandmember

func (redis *SimpleRedis) Srandmember(key string) ([]byte, error)

func (*SimpleRedis) Srem

func (redis *SimpleRedis) Srem(key string, arg1 []byte) (bool, error)

func (*SimpleRedis) Start

func (redis *SimpleRedis) Start(waitGroup ...*sync.WaitGroup) error

Start ...

func (*SimpleRedis) Started

func (redis *SimpleRedis) Started() bool

Started ...

func (*SimpleRedis) Stop

func (redis *SimpleRedis) Stop(waitGroup ...*sync.WaitGroup) error

Stop ...

func (*SimpleRedis) Sunion

func (redis *SimpleRedis) Sunion(key string, arg1 []string) ([][]byte, error)

func (*SimpleRedis) Sunionstore

func (redis *SimpleRedis) Sunionstore(key string, arg1 []string) error

func (*SimpleRedis) Ttl

func (redis *SimpleRedis) Ttl(key string) (int64, error)

func (*SimpleRedis) Type

func (redis *SimpleRedis) Type(key string) (byte, error)

func (*SimpleRedis) Zadd

func (redis *SimpleRedis) Zadd(key string, arg1 float64, arg2 []byte) (bool, error)

func (*SimpleRedis) Zcard

func (redis *SimpleRedis) Zcard(key string) (int64, error)

func (*SimpleRedis) Zrange

func (redis *SimpleRedis) Zrange(key string, arg1 int64, arg2 int64) ([][]byte, error)

func (*SimpleRedis) Zrangebyscore

func (redis *SimpleRedis) Zrangebyscore(key string, arg1 float64, arg2 float64) ([][]byte, error)

func (*SimpleRedis) Zrem

func (redis *SimpleRedis) Zrem(key string, arg1 []byte) (bool, error)

func (*SimpleRedis) Zrevrange

func (redis *SimpleRedis) Zrevrange(key string, arg1 int64, arg2 int64) ([][]byte, error)

func (*SimpleRedis) Zscore

func (redis *SimpleRedis) Zscore(key string, arg1 []byte) (float64, error)

type SimpleWebEcho

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

SimpleWebEcho ...

func (*SimpleWebEcho) AddFilter

func (w *SimpleWebEcho) AddFilter(pattern string, position string, middleware MiddlewareFunc, method string, methods ...string)

func (*SimpleWebEcho) AddNamespace

func (w *SimpleWebEcho) AddNamespace(path string, middleware []MiddlewareFunc, routes ...*Route) error

AddNamespace ...

func (*SimpleWebEcho) AddRoute

func (w *SimpleWebEcho) AddRoute(method, path string, handler HandlerFunc, middleware ...MiddlewareFunc) error

AddRoute ...

func (*SimpleWebEcho) AddRoutes

func (w *SimpleWebEcho) AddRoutes(routes ...*Route) error

AddRoutes ...

func (*SimpleWebEcho) GetClient

func (w *SimpleWebEcho) GetClient() interface{}

GetClient ...

func (*SimpleWebEcho) Start

func (w *SimpleWebEcho) Start(waitGroup ...*sync.WaitGroup) error

Start ...

func (*SimpleWebEcho) Started

func (w *SimpleWebEcho) Started() bool

Started ...

func (*SimpleWebEcho) Stop

func (w *SimpleWebEcho) Stop(waitGroup ...*sync.WaitGroup) error

Stop ...

type SimpleWebHttp

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

SimpleWebHttp ...

func (*SimpleWebHttp) AddFilter

func (w *SimpleWebHttp) AddFilter(pattern string, position string, middleware MiddlewareFunc, method string, methods ...string)

func (*SimpleWebHttp) AddNamespace

func (w *SimpleWebHttp) AddNamespace(path string, middleware []MiddlewareFunc, routes ...*Route) error

AddNamespace ...

func (*SimpleWebHttp) AddRoute

func (w *SimpleWebHttp) AddRoute(method, path string, handler HandlerFunc, middleware ...MiddlewareFunc) error

AddRoute ...

func (*SimpleWebHttp) AddRoutes

func (w *SimpleWebHttp) AddRoutes(routes ...*Route) error

AddRoutes ...

func (*SimpleWebHttp) GetClient

func (w *SimpleWebHttp) GetClient() interface{}

GetClient ...

func (*SimpleWebHttp) Start

func (w *SimpleWebHttp) Start(waitGroup ...*sync.WaitGroup) error

Start ...

func (*SimpleWebHttp) Started

func (w *SimpleWebHttp) Started() bool

Started ...

func (*SimpleWebHttp) Stop

func (w *SimpleWebHttp) Stop(waitGroup ...*sync.WaitGroup) error

Stop ...

type SimpleWebServer

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

SimpleWebServer ...

func (*SimpleWebServer) AddFilter

func (w *SimpleWebServer) AddFilter(pattern string, position string, middleware MiddlewareFunc, method string, methods ...string)

func (*SimpleWebServer) AddNamespace

func (w *SimpleWebServer) AddNamespace(path string, middleware []MiddlewareFunc, routes ...*Route) error

AddNamespace ...

func (*SimpleWebServer) AddRoute

func (w *SimpleWebServer) AddRoute(method string, path string, handler HandlerFunc, middleware ...MiddlewareFunc) error

AddRoute ...

func (*SimpleWebServer) AddRoutes

func (w *SimpleWebServer) AddRoutes(routes ...*Route) error

AddRoutes ...

func (*SimpleWebServer) GetClient

func (w *SimpleWebServer) GetClient() interface{}

GetClient ...

func (*SimpleWebServer) Start

func (w *SimpleWebServer) Start(waitGroup ...*sync.WaitGroup) error

Start ...

func (*SimpleWebServer) Started

func (w *SimpleWebServer) Started() bool

Started ...

func (*SimpleWebServer) Stop

func (w *SimpleWebServer) Stop(waitGroup ...*sync.WaitGroup) error

Stop ...

type SimpleWorkList

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

SimpleWorkList ...

func (*SimpleWorkList) AddWork

func (s *SimpleWorkList) AddWork(id string, data interface{})

AddWork ...

func (*SimpleWorkList) Start

func (s *SimpleWorkList) Start(waitGroup ...*sync.WaitGroup) (err error)

Start ...

func (*SimpleWorkList) Started

func (s *SimpleWorkList) Started() bool

Started ...

func (*SimpleWorkList) Stop

func (s *SimpleWorkList) Stop(waitGroup ...*sync.WaitGroup) error

Stop ...

type Work

type Work struct {
	Id   string
	Data interface{}
	// contains filtered or unexported fields
}

Work ...

func NewWork

func NewWork(id string, data interface{}, logger logger.ILogger) *Work

NewWork ...

func (*Work) ElapsedTime

func (work *Work) ElapsedTime() time.Duration

ElapsedTime ...

type WorkHandler

type WorkHandler func(id string, data interface{}) error

WorkHandler ...

type WorkListConfig

type WorkListConfig struct {
	Name       string        `json:"name"`
	MaxWorkers int           `json:"max_workers"`
	MaxRetries int           `json:"max_retries"`
	SleepTime  time.Duration `json:"sleep_time"`
	Mode       Mode          `json:"mode"`
}

WorkListConfig ...

func NewWorkListConfig

func NewWorkListConfig(name string, maxWorkers, maxRetries int, sleepTime time.Duration, mode Mode) *WorkListConfig

NewWorkListConfig...

type WorkRecoverHandler

type WorkRecoverHandler func(list IList) error

WorkRecoverHandler ...

type WorkRecoverWastedRetriesHandler

type WorkRecoverWastedRetriesHandler func(id string, data interface{}) error

WorkRecoverWastedRetriesHandler ...

type Worker

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

Worker ...

func NewWorker

func NewWorker(id int, config *WorkListConfig, handler WorkHandler, list IList, workRecoverHandler WorkRecoverHandler, workRecoverWastedRetriesHandler WorkRecoverWastedRetriesHandler, logger logger.ILogger) *Worker

NewWorker ...

func (*Worker) AddWork

func (worker *Worker) AddWork(id string, data interface{}) error

AddWork ...

func (*Worker) Start

func (worker *Worker) Start() error

Start ...

func (*Worker) Stop

func (worker *Worker) Stop() error

Stop ...

Directories

Path Synopsis
examples
all
db

Jump to

Keyboard shortcuts

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