module

package
v0.0.0-...-c4fa36d Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2019 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNotFoundModuleInstance = errors.New("not found module instance error")

Functions

func CalculateScoreSimple

func CalculateScoreSimple(counts Counts) uint64

CalculateScoreSimple 代表简易的组件评分计算函数。

func CheckType

func CheckType(p Type, module Module) bool

检车类型

func LegalMid

func LegalMid(str MID) bool

func LegalType

func LegalType(p Type) bool

在映射种查找是否含有该类型

func SetScore

func SetScore(module *Module) bool

func SplitMid

func SplitMid(mid MID) ([]string, error)

Types

type Analyzer

type Analyzer interface {
	Module
	RespParsers() []ParserResponse
	Analyze(resp *datastructs.Response) ([]datastructs.Data, []error)
}

type CalculateScore

type CalculateScore func(counts Counts) uint64 //计算组建分数的方法

type Counts

type Counts struct {
	CalledCount    uint64 // CalledCount 代表调用计数。
	AcceptedCount  uint64 // AcceptedCount 代表接受计数。
	CompletedCount uint64 // CompletedCount 代表成功完成计数。
	HandlingNumber uint64 // HandlingNumber 代表实时处理数。
}

type Downloader

type Downloader interface {
	Module
	Download(req *datastructs.Request) (*datastructs.Response, error)
}

type MID

type MID string

func GenMID

func GenMID(mtype Type, sn uint64, maddr net.Addr) (MID, error)

GenMID 会根据给定参数生成组件ID。

type Module

type Module interface {
	Id() MID                         // 获取当前组建的id
	Addr() string                    // 获取当前组建的网络地址的字符串形式
	Score() uint64                   // 当前评分
	SetScore(score uint64)           // 设置积分
	ScoreCalculator() CalculateScore // 获取评分计算器
	CallCount() uint64               // 获取当前组建被调用的计数
	AcceptCount() uint64             // 获取当前组建接受的调用计数,组建一般由于超负荷或参数有误调用的计数
	CompletedCount() uint64          // 获取当前组建已经完成的调用计数
	HandlingNumber() uint64          // 获取当前组建正在处理的调用的数量
	Counts() Counts                  // 一次性获取所有计数
	Summary() SummaryStruct          // 获取组建摘要
}

type ModuleInternal

type ModuleInternal interface {
	Module
	IncrCalledCount()
	IncrAcceptCount()
	IncrCompletedCount()
	IncrHandlingNumber()
	DecrHandlingNumber()
	Clear()
}

func NewModuleInternal

func NewModuleInternal(mid MID, score CalculateScore) (ModuleInternal, error)

type ParserResponse

type ParserResponse func(response *http.Response, resDepth uint32) ([]datastructs.Data, []error)

type Pipeline

type Pipeline interface {
	Module
	ItemProcessors() []ProcessItem      //用于返回当前条目处理管道的使用条目处理函数的列表
	Send(item datastructs.Item) []error //send会向条目处理管道发送条目,条目需要一次经过若干处理函数的处理
	FailFast() bool                     // 表示当前条目处理管道是否是快速失败(只要在处理某个条目时在某一个步骤上出错,那条目处理管道就会忽略后续的所有步骤并报告)
	SetFailFast(fail bool)              // 设置是否快速失败
}

type ProcessItem

type ProcessItem func(item datastructs.Item) (datastructs.Item, error)

type Register

type Register interface {
	Register(module Module) (bool, error)                 // 用于注册组件实例
	Unregister(module MID) (bool, error)                  // 用于注销组建
	Get(moduleType Type) (Module, error)                  // 用于获取一个指定类型的组建,基于负载均衡策略返回
	GetAllByType(moduleType Type) (map[MID]Module, error) // 获取追定类型的所有组建
	GetAll() map[MID]Module                               // 获取所有组建
	Clear()                                               // 清除所有注销的记录
}

func NewRegister

func NewRegister() Register

type SNGenertor

type SNGenertor interface {
	Start() uint64      // 用于获取预设的最小序列号
	Max() uint64        // 获取预设的最大序列号
	Next() uint64       // 获取下一个序列号
	CycleCount() uint64 //获取循环计数
	Get() uint64        // 获得一个序列号并准备以下个序列号
}

* 序列号生成器,

组建类型字母:   序列号       组建地址模块
	|		     |   			|
组建类型模块   序列号生成器    网络地址
var Sn SNGenertor

func NewSnGenertor

func NewSnGenertor(start uint64, max uint64) SNGenertor

type SummaryStruct

type SummaryStruct struct {
	Id        MID         `json:"id"`
	Called    uint64      `json:"called"`
	Accepted  uint64      `json:"accepted"`
	Completed uint64      `json:"completed"`
	Handling  uint64      `json:"handling"`
	Extra     interface{} `json:"extra,omitempty"` // 填写额外的组建信息
}

type Type

type Type string // 组建类型
const (
	TYPE_DOWNLOADER Type = "downloader"
	TYPE_ANALYZER   Type = "analyzer"
	TYPE_PIPLINE    Type = "pipeline"
)

func GetType

func GetType(mid MID) (ok bool, p Type)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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