public int ArrangeInstantTask(string tid, uint dtuId, JObject[] cmdobjs, ATTaskResultConsumer consumer) { ATTask task = new ATTask(tid, dtuId, cmdobjs, TaskType.INSTANT, consumer); ATTaskPersistent.Init(); ATTaskPersistent.SaveTaskImmedate(task); task.Consumer += OnAtInstantTaskFinished; DacTaskContext context = null; if (_workers.ContainsKey(dtuId)) { if (!IsWorkerAvaliable(_workers[dtuId])) { _workers[dtuId].Stop(); } context = _workers[dtuId].GetContext(); } else { context = CreateContext(dtuId); } var atworker = new AtCommandWorker(task, context); atworker.StartWork(); return(task.ID); }
public ATTask(string tid, uint dtuId, JObject[] cmdobjs, TaskType type, ATTaskResultConsumer tc) { this.TID = tid; this.DtuID = dtuId; this.Type = type; this.AtCommands = this.GetAtCommands(cmdobjs); this.Requested = DateTime.Now; this.Requester = "Admin"; this.Saved = false; this.Status = DACTaskStatus.RUNNING; Consumer = tc; }