示例#1
0
文件: jobManager.go 项目: bitzend/mgm
// NewManager constructs a jobManager for use
func NewManager(filePath string, mgmURL string, hubRegion uuid.UUID, pers persist.MGMDB, notify notifier, log logger.Log) Manager {

	j := Manager{}
	j.fileUp = make(chan fileUpload, 32)
	j.localPath = filePath
	j.mgmURL = mgmURL
	j.log = logger.Wrap("JOB", log)
	j.mgm = pers
	j.hub = hubRegion
	j.rUp = make(chan uuid.UUID, 32)
	j.rDn = make(chan uuid.UUID, 32)
	j.notify = notify

	j.jobs = make(map[int64]mgm.Job)
	for _, t := range pers.QueryJobs() {
		j.jobs[t.ID] = t
	}
	j.jMutex = &sync.Mutex{}

	go j.process()

	return j
}