// 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 }