scheduler

package
v0.0.0-...-63bff7e Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2018 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetStatusDescription

func GetStatusDescription(status Status) string

GetStatusDescription 用于获取状态的文字描述。

Types

type Args

type Args interface {
	// Check 用于自检参数的有效性。
	// 若结果值为nil,则说明未发现问题,否则就意味着自检未通过。
	Check() error
}

Args 代表参数容器的接口类型。

type BufferPoolSummaryStruct

type BufferPoolSummaryStruct struct {
	BufferCap       uint32 `json:"buffer_cap"`
	MaxBufferNumber uint32 `json:"max_buffer_number"`
	BufferNumber    uint32 `json:"buffer_number"`
	Total           uint64 `json:"total"`
}

BufferPoolSummaryStruct 代表缓冲池的摘要类型。

type DataArgs

type DataArgs struct {
	// ReqBufferCap 代表请求缓冲器的容量。
	ReqBufferCap uint32 `json:"req_buffer_cap"`
	// ReqMaxBufferNumber 代表请求缓冲器的最大数量。
	ReqMaxBufferNumber uint32 `json:"req_max_buffer_number"`
	// RespBufferCap 代表响应缓冲器的容量。
	RespBufferCap uint32 `json:"resp_buffer_cap"`
	// RespMaxBufferNumber 代表响应缓冲器的最大数量。
	RespMaxBufferNumber uint32 `json:"resp_max_buffer_number"`
	// ItemBufferCap 代表条目缓冲器的容量。
	ItemBufferCap uint32 `json:"item_buffer_cap"`
	// ItemMaxBufferNumber 代表条目缓冲器的最大数量。
	ItemMaxBufferNumber uint32 `json:"item_max_buffer_number"`
	// ErrorBufferCap 代表错误缓冲器的容量。
	ErrorBufferCap uint32 `json:"error_buffer_cap"`
	// ErrorMaxBufferNumber 代表错误缓冲器的最大数量。
	ErrorMaxBufferNumber uint32 `json:"error_max_buffer_number"`
}

DataArgs 代表数据相关的参数容器的类型。

func (*DataArgs) Check

func (args *DataArgs) Check() error

type ModuleArgs

type ModuleArgs struct {
	// Downloaders 代表下载器列表。
	Downloaders []module.Downloader
	// Analyzers 代表分析器列表。
	Analyzers []module.Analyzer
	// Pipelines 代表条目处理管道管道列表。
	Pipelines []module.Pipeline
}

ModuleArgs 代表组件相关的参数容器的类型。

func (*ModuleArgs) Check

func (args *ModuleArgs) Check() error

Check 用于当前参数容器的有效性。

func (*ModuleArgs) Summary

func (args *ModuleArgs) Summary() ModuleArgsSummary

type ModuleArgsSummary

type ModuleArgsSummary struct {
	DownloaderListSize int `json:"downloader_list_size"`
	AnalyzerListSize   int `json:"analyzer_List_size"`
	PipelineListSize   int `json:"pipeline_list_size"`
}

ModuleArgsSummary 代表组件相关的参数容器的摘要类型。

type RequestArgs

type RequestArgs struct {
	// AcceptedDomains 代表可以接受的URL的主域名的列表。
	// URL主域名不在列表中的请求都会被忽略,
	AcceptedDomains []string `json:"accepted_primary_domains"`
	// maxDepth 代表了需要被爬取的最大深度。
	// 实际深度大于此值的请求都会被忽略。
	MaxDepth uint32 `json:"max_depth"`
}

RequestArgs 代表请求相关的参数容器的类型。

func (*RequestArgs) Check

func (args *RequestArgs) Check() error

func (*RequestArgs) Same

func (args *RequestArgs) Same(another *RequestArgs) bool

Same 用于判断两个请求相关的参数容器是否相同。

type SchedSummary

type SchedSummary interface {
	// Struct 用于获得摘要信息的结构化形式。
	Struct() SummaryStruct
	// String 用于获得摘要信息的字符串形式。
	String() string
}

SchedSummary 代表调度器摘要的接口类型。

type Scheduler

type Scheduler interface {
	// Init 用于初始化调度器。
	// 参数requestArgs代表请求相关的参数。
	// 参数dataArgs代表数据相关的参数。
	// 参数moduleArgs代表组件相关的参数。
	Init(requestArgs RequestArgs,
		dataArgs DataArgs,
		moduleArgs ModuleArgs) (err error)
	// Start 用于启动调度器并执行爬取流程。
	// 参数firstHTTPReq即代表首次请求。调度器会以此为起始点开始执行爬取流程。
	Start(firstHTTPReq *http.Request) (err error)
	// Stop 用于停止调度器的运行。
	// 所有处理模块执行的流程都会被中止。
	Stop() (err error)
	// Status 用于获取调度器的状态。
	Status() Status
	// ErrorChan 用于获得错误通道。
	// 调度器以及各个处理模块运行过程中出现的所有错误都会被发送到该通道。
	// 若结果值为nil,则说明错误通道不可用或调度器已被停止。
	ErrorChan() <-chan error
	// Idle 用于判断所有处理模块是否都处于空闲状态。
	Idle() bool
	// Summary 用于获取摘要实例。
	Summary() SchedSummary
}

Scheduler 代表调度器的接口类型。

func NewScheduler

func NewScheduler() Scheduler

NewScheduler 会创建一个调度器实例。

type Status

type Status uint8

Status 代表调度器状态的类型。

const (
	// SCHED_STATUS_UNINITIALIZED 代表未初始化的状态。
	SCHED_STATUS_UNINITIALIZED Status = 0
	// SCHED_STATUS_INITIALIZING 代表正在初始化的状态。
	SCHED_STATUS_INITIALIZING Status = 1
	// SCHED_STATUS_INITIALIZED 代表已初始化的状态。
	SCHED_STATUS_INITIALIZED Status = 2
	// SCHED_STATUS_STARTING 代表正在启动的状态。
	SCHED_STATUS_STARTING Status = 3
	// SCHED_STATUS_STARTED 代表已启动的状态。
	SCHED_STATUS_STARTED Status = 4
	// SCHED_STATUS_STOPPING 代表正在停止的状态。
	SCHED_STATUS_STOPPING Status = 5
	// SCHED_STATUS_STOPPED 代表已停止的状态。
	SCHED_STATUS_STOPPED Status = 6
)

type SummaryStruct

type SummaryStruct struct {
	RequestArgs     RequestArgs             `json:"request_args"`
	DataArgs        DataArgs                `json:"data_args"`
	ModuleArgs      ModuleArgsSummary       `json:"module_args"`
	Status          string                  `json:"status"`
	Downloaders     []module.SummaryStruct  `json:"downloaders"`
	Analyzers       []module.SummaryStruct  `json:"analyzers"`
	Pipelines       []module.SummaryStruct  `json:"pipelines"`
	ReqBufferPool   BufferPoolSummaryStruct `json:"request_buffer_pool"`
	RespBufferPool  BufferPoolSummaryStruct `json:"response_buffer_pool"`
	ItemBufferPool  BufferPoolSummaryStruct `json:"item_buffer_pool"`
	ErrorBufferPool BufferPoolSummaryStruct `json:"error_buffer_pool"`
	NumURL          uint64                  `json:"url_number"`
}

SummaryStruct 代表调度器摘要的结构。

func (*SummaryStruct) Same

func (one *SummaryStruct) Same(another SummaryStruct) bool

Same 用于判断当前的调度器摘要与另一份是否相同。

Jump to

Keyboard shortcuts

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