private async Task RunMarked(JobOrder jo, Func <JobOrder, Task <JobResult> > jobToRun) { if (jo.Started.HasValue) { return; } jo.Started = DateTime.Now; jo.Result = null; var path = $"{ROOTKEY}/{_conn.AgentID}/{SUBKEY}/{OBSERVABLE}"; var desc = $"Executing “{jo.Command}”"; await _conn.UpdateNode(jo, path); //await _stateUpdatr.SetRunningTask(_agentId, desc); try { jo.Result = await jobToRun(jo); } catch (Exception ex) { jo.Result = JobResult.Fail(desc, ex); } await _conn.UpdateNode(jo, path); }
public Task SetState(string taskDesc, string exeSHA1 = null, string exeVersion = null) { var exe = CurrentExe.GetFullPath(); return(_conn.UpdateNode(new AgentState { RunningTask = taskDesc, LastActivity = DateTime.Now, ExeSHA1 = exeSHA1 ?? exe.SHA1ForFile(), ExeVersion = exeVersion ?? exe.GetVersion(), }, NodePath)); }