upstream

package
v0.3.3 Latest Latest
Warning

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

Go to latest
Published: Nov 25, 2020 License: MIT Imports: 25 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

const Nil ID = ""

Nil TODO

func (ID) ItemID

func (id ID) ItemID() uint64

ItemID TODO

type Manager

type Manager struct {
	*sync.RWMutex
	// contains filtered or unexported fields
}

Manager TODO

func NewManager

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

NewManager TODO

func (*Manager) AddUpstream

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

AddUpstream TODO

func (*Manager) AllUpstreams added in v0.2.2

func (mgr *Manager) AllUpstreams() (result sth.Result, err error)

AllUpstreams TODO

func (*Manager) DeleteQueues

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

DeleteQueues TODO

func (*Manager) DeleteUpstream

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

DeleteUpstream TODO

func (*Manager) DequeueRequest added in v0.3.0

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

DequeueRequest TODO

func (*Manager) HTTPClient added in v0.2.7

func (mgr *Manager) HTTPClient() *http.Client

HTTPClient TODO

func (*Manager) Info

func (mgr *Manager) Info() (result sth.Result, err error)

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) Queues

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

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) UpdateQueues added in v0.2.3

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

UpdateQueues 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 Pack added in v0.2.3

type Pack struct {
	sth.QueueID
	*slicemap.Viewer
}

Pack TODO

func NewPack

func NewPack(qid sth.QueueID) *Pack

NewPack 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) Dequeue added in v0.3.0

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

Dequeue TODO

func (*Queue) Idle

func (queue *Queue) Idle() bool

Idle TODO

func (*Queue) Info added in v0.2.6

func (queue *Queue) Info() sth.Result

Info TODO

func (*Queue) ItemID

func (queue *Queue) ItemID() uint64

ItemID 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) ClearQueue added in v0.2.3

func (qb *QueueBulk) ClearQueue(qid sth.QueueID, ids []ID, ts *time.Time) sth.Result

ClearQueue TODO

func (*QueueBulk) ClearUpstream added in v0.2.3

func (qb *QueueBulk) ClearUpstream(id ID, queueIDs []sth.QueueID, ts *time.Time) sth.Result

ClearUpstream TODO

func (*QueueBulk) DequeueRequest added in v0.3.0

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

DequeueRequest TODO

func (*QueueBulk) Exist added in v0.2.9

func (qb *QueueBulk) Exist(qid sth.QueueID) bool

Exist 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) Size

func (qb *QueueBulk) Size() int64

Size TODO

func (*QueueBulk) UpdateUpstream added in v0.2.3

func (qb *QueueBulk) UpdateUpstream(upstream *Upstream, qMeta *UpdateQueueMeta) (int, int)

UpdateUpstream TODO

type QueueHeap added in v0.2.6

type QueueHeap struct {
	*sync.RWMutex
	// contains filtered or unexported fields
}

QueueHeap TODO

func NewQueueHeap added in v0.2.6

func NewQueueHeap() *QueueHeap

NewQueueHeap TODO

func (*QueueHeap) Delete added in v0.2.6

func (qh *QueueHeap) Delete(queue *Queue) *Queue

Delete TODO

func (*QueueHeap) Pop added in v0.2.6

func (qh *QueueHeap) Pop() *Queue

Pop TODO

func (*QueueHeap) Push added in v0.2.6

func (qh *QueueHeap) Push(queue *Queue)

Push TODO

func (*QueueHeap) Size added in v0.2.6

func (qh *QueueHeap) Size() int

Size TODO

func (*QueueHeap) Top added in v0.2.6

func (qh *QueueHeap) Top() *Queue

Top TODO

func (*QueueHeap) Update added in v0.2.6

func (qh *QueueHeap) Update(queue *Queue)

Update 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 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 UpdateQueueMeta added in v0.2.9

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

UpdateQueueMeta TODO

func NewUpdateQueueMeta added in v0.2.9

func NewUpdateQueueMeta(qid sth.QueueID, qsize int64, kick kickType) *UpdateQueueMeta

NewUpdateQueueMeta TODO

func (*UpdateQueueMeta) String added in v0.2.9

func (meta *UpdateQueueMeta) String() string

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) DeleteQueue added in v0.2.3

func (upstream *Upstream) DeleteQueue(qid sth.QueueID, ts *time.Time) bool

DeleteQueue TODO

func (*Upstream) DequeueRequest added in v0.3.0

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

DequeueRequest TODO

func (*Upstream) Destory

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

Destory TODO

func (*Upstream) ExistQueue added in v0.2.3

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

ExistQueue 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) 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) UpdateQueue added in v0.2.3

func (upstream *Upstream) UpdateQueue(qMeta *UpdateQueueMeta) bool

UpdateQueue TODO

Jump to

Keyboard shortcuts

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