コード例 #1
0
ファイル: scheduler.go プロジェクト: TonyFStark/pholcus
func init() {
	go func() {
		// 等待main中的init()执行完毕
		cache.WaitInit(0)
		sdl.proxy = proxy.New()
	}()
}
コード例 #2
0
ファイル: scheduler.go プロジェクト: ss7247/pholcus
	// 全局代理IP
	proxy *proxy.Proxy
	// 标记是否使用代理IP
	useProxy bool
	// 全局历史记录
	history history.Historier
	// 全局读写锁
	sync.RWMutex
}

// 定义全局调度
var sdl = &scheduler{
	history: history.New(),
	status:  status.RUN,
	count:   make(chan bool, cache.Task.ThreadNum),
	proxy:   proxy.New(),
}

func Init() {
	for sdl.proxy == nil {
		runtime.Gosched()
	}
	sdl.matrices = make(map[int]*Matrix)
	sdl.count = make(chan bool, cache.Task.ThreadNum)
	if cache.Task.Mode == status.OFFLINE {
		sdl.history.ReadSuccess(cache.Task.OutType, cache.Task.SuccessInherit)
		sdl.history.ReadFailure(cache.Task.OutType, cache.Task.FailureInherit)
	}
	if cache.Task.ProxyMinute > 0 {
		if sdl.proxy.Count() > 0 {
			sdl.useProxy = true