upstream

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2020 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

UpstreamStatusList TODO

UpstreamStatusMap TODO

Functions

func StopUpstreamStatus

func StopUpstreamStatus(status Status) bool

StopUpstreamStatus TODO

func WorkUpstreamStatus

func WorkUpstreamStatus(status Status) bool

WorkUpstreamStatus TODO

Types

type APIError

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

APIError TODO

func (APIError) Error

func (e APIError) Error() string

type CallByUpstream

type CallByUpstream func(*Upstream) (sth.Result, error)

CallByUpstream TODO

type CycleCountIter

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

CycleCountIter TODO

func NewCycleCountIter

func NewCycleCountIter(m *slicemap.Map, start, steps int) *CycleCountIter

NewCycleCountIter TODO

func (*CycleCountIter) Iter

func (iter *CycleCountIter) Iter(f slicemap.IterFunc)

Iter TODO

type ID

type ID string

ID TODO

func (ID) ItemID

func (id ID) ItemID() uint64

ItemID TODO

type Manager

type Manager struct {
	*utils.BulkLock
	// contains filtered or unexported fields
}

Manager TODO

func NewManager

func NewManager(serv *serv.Serv, client *redis.Client) *Manager

NewManager TODO

func (*Manager) AddUpstream

func (mgr *Manager) AddUpstream(storeMeta *StoreMeta) (result sth.Result, err error)

AddUpstream TODO

func (*Manager) DeleteOutdated

func (mgr *Manager) DeleteOutdated(qid sth.QueueID, ids []ID, ts time.Time)

DeleteOutdated TODO

func (*Manager) DeleteQueues

func (mgr *Manager) DeleteQueues(id ID, queueIDs []sth.QueueID) (sth.Result, error)

DeleteQueues TODO

func (*Manager) DeleteUpstream

func (mgr *Manager) DeleteUpstream(id ID) (result sth.Result, err error)

DeleteUpstream TODO

func (*Manager) Info

func (mgr *Manager) Info() (result sth.Result)

Info TODO

func (*Manager) Load

func (mgr *Manager) Load() (err error)

Load TODO

func (*Manager) OnStart

func (mgr *Manager) OnStart(context.Context) (err error)

OnStart TODO

func (*Manager) OnStop

func (mgr *Manager) OnStop(context.Context) error

OnStop TODO

func (*Manager) PauseUpstream

func (mgr *Manager) PauseUpstream(id ID) (result sth.Result, err error)

PauseUpstream TODO

func (*Manager) PopRequest

func (mgr *Manager) PopRequest(qid sth.QueueID) (req *request.Request, err error)

PopRequest TODO

func (*Manager) Queues

func (mgr *Manager) Queues(k int) (result sth.Result)

Queues TODO

func (*Manager) ResumeUpstream

func (mgr *Manager) ResumeUpstream(id ID) (result sth.Result, err error)

ResumeUpstream TODO

func (*Manager) SetStatus

func (mgr *Manager) SetStatus(id ID, newStatus Status) (sth.Result, error)

SetStatus TODO

func (*Manager) Start

func (mgr *Manager) Start() (err error)

Start TODO

func (*Manager) Stop

func (mgr *Manager) Stop()

Stop TODO

func (*Manager) UpdateUpStreamQueues

func (mgr *Manager) UpdateUpStreamQueues(id ID, qMetas []*QueueMeta) (sth.Result, error)

UpdateUpStreamQueues TODO

func (*Manager) UpstreamInfo

func (mgr *Manager) UpstreamInfo(id ID) (result sth.Result, err error)

UpstreamInfo TODO

func (*Manager) Upstreams

func (mgr *Manager) Upstreams(status Status) (result sth.Result, err error)

Upstreams TODO

type Meta

type Meta struct {
	ID        ID       `json:"id" binding:"required"`
	API       string   `json:"api" binding:"required"`
	ParsedAPI *url.URL `json:"-"`
}

Meta TODO

type Queue

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

Queue TODO

func NewQueue

func NewQueue(upstream *Upstream, meta *QueueMeta) *Queue

NewQueue TODO

func (*Queue) Idle

func (queue *Queue) Idle() bool

Idle TODO

func (*Queue) ItemID

func (queue *Queue) ItemID() uint64

ItemID TODO

func (*Queue) Pop

func (queue *Queue) Pop() (req *request.Request, qsize int64, err error)

Pop TODO

func (*Queue) QueueSize

func (queue *Queue) QueueSize() int64

QueueSize TODO

type QueueBulk

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

QueueBulk TODO

func NewQueueBulk

func NewQueueBulk(mgr *Manager, bulkSize int) *QueueBulk

NewQueueBulk TODO

func (*QueueBulk) GetAndDelete

func (qb *QueueBulk) GetAndDelete(id uint64, f func(slicemap.Item) bool) bool

GetAndDelete TODO

func (*QueueBulk) GetOrAdd

func (qb *QueueBulk) GetOrAdd(id uint64, f func(slicemap.Item) slicemap.Item) bool

GetOrAdd TODO

func (*QueueBulk) PopRequest

func (qb *QueueBulk) PopRequest(qid sth.QueueID) (req *request.Request, err error)

PopRequest TODO

func (*QueueBulk) Size

func (qb *QueueBulk) Size() int64

Size TODO

type QueueMeta

type QueueMeta struct {
	ID sth.QueueID
	// contains filtered or unexported fields
}

QueueMeta TODO

func NewQueueMeta

func NewQueueMeta(qid sth.QueueID, qsize int64) *QueueMeta

NewQueueMeta TODO

type QueueUpstreamsPack

type QueueUpstreamsPack struct {
	sth.QueueID
	*slicemap.Map
}

QueueUpstreamsPack TODO

func NewPack

func NewPack(qid sth.QueueID) *QueueUpstreamsPack

NewPack TODO

type QueuesSelector

type QueuesSelector interface {
	Select() []sth.Result
}

QueuesSelector TODO

type RandSelector

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

RandSelector TODO

func NewRandSelector

func NewRandSelector(mgr *Manager, k int) *RandSelector

NewRandSelector TODO

func (*RandSelector) Select

func (selector *RandSelector) Select() []sth.Result

Select TODO

type Status

type Status int

Status TODO

const (
	UpstreamInit        Status // init
	UpstreamWorking            // working
	UpstreamPaused             // paused
	UpstreamUnavailable        // unavailable
	UpstreamStopping           // stopping
	UpstreamStopped            // stopped
	UpstreamRemoving           // removing
	UpstreamRemoved            // removed
)

Status enum

func (Status) MarshalJSON

func (s Status) MarshalJSON() ([]byte, error)

MarshalJSON TODO

func (Status) String

func (i Status) String() string

func (*Status) UnmarshalJSON

func (s *Status) UnmarshalJSON(b []byte) error

UnmarshalJSON TODO

type StopCtx

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

StopCtx TODO

func NewStopCtx

func NewStopCtx() *StopCtx

NewStopCtx TODO

func (*StopCtx) Done

func (c *StopCtx) Done() <-chan struct{}

Done TODO

func (*StopCtx) Stop

func (c *StopCtx) Stop()

Stop TODO

type StoreMeta

type StoreMeta struct {
	*Meta
	Status Status `json:"status"`
}

StoreMeta TODO

func NewStoreMeta

func NewStoreMeta(upstream *Upstream) *StoreMeta

NewStoreMeta TODO

func UnmarshalUpstreamStoreMetaJSON

func UnmarshalUpstreamStoreMetaJSON(b []byte) (storeMeta *StoreMeta, err error)

UnmarshalUpstreamStoreMetaJSON TODO

type UpdateQueuesTask

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

UpdateQueuesTask TODO

func NewUpdateQueuesTask

func NewUpdateQueuesTask(upstream *Upstream) *UpdateQueuesTask

NewUpdateQueuesTask TODO

func (*UpdateQueuesTask) Start

func (task *UpdateQueuesTask) Start()

Start TODO

func (*UpdateQueuesTask) Stop

func (task *UpdateQueuesTask) Stop()

Stop TODO

type Upstream

type Upstream struct {
	*Meta
	// contains filtered or unexported fields
}

Upstream TODO

func NewUpstream

func NewUpstream(mgr *Manager, meta *Meta) *Upstream

NewUpstream TODO

func (*Upstream) DeleteQueues

func (upstream *Upstream) DeleteQueues(queueIDs []sth.QueueID) (result sth.Result)

DeleteQueues TODO

func (*Upstream) Destory

func (upstream *Upstream) Destory() (err error)

Destory TODO

func (*Upstream) ExistQueueID

func (upstream *Upstream) ExistQueueID(qid sth.QueueID) bool

ExistQueueID TODO

func (*Upstream) Info

func (upstream *Upstream) Info() (result sth.Result)

Info TODO

func (*Upstream) ItemID

func (upstream *Upstream) ItemID() uint64

ItemID TODO

func (*Upstream) PopRequest

func (upstream *Upstream) PopRequest(qid sth.QueueID) (req *request.Request, qsize int64, err error)

PopRequest TODO

func (*Upstream) SetStatus

func (upstream *Upstream) SetStatus(newStatus Status) (err error)

SetStatus TODO

func (*Upstream) Start

func (upstream *Upstream) Start() (err error)

Start TODO

func (*Upstream) Status

func (upstream *Upstream) Status() Status

Status TODO

func (*Upstream) Stop

func (upstream *Upstream) Stop() (err error)

Stop TODO

func (*Upstream) UpdateQueues

func (upstream *Upstream) UpdateQueues(qMetas []*QueueMeta) (result sth.Result)

UpdateQueues TODO

Jump to

Keyboard shortcuts

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