private void Save(JobInstanceDetail detail) { Job = Jobs.Save(Job); Instance = Jobs.Save(Instance); Jobs.Save(Instance.GetWithDailyPartition()); Jobs.Save(detail); }
/// <summary> /// Inserts a specified job instance details /// </summary> public JobInstanceDetail Save(JobInstanceDetail job) { var insertOperation = TableOperation.Insert(job); var result = JobInstanceDetailsTable.Execute(insertOperation); return(result.Result as JobInstanceDetail); }
/// <summary> /// Inserts a specified job instance details /// </summary> public async Task <JobInstanceDetail> SaveAsync(JobInstanceDetail job) { var insertOperation = TableOperation.Insert(job); var result = await JobInstanceDetailsTable.ExecuteAsync(insertOperation); return(result.Result as JobInstanceDetail); }
private async Task SaveAsync(JobInstanceDetail detail) { Job = await Jobs.SaveAsync(Job); Instance = await Jobs.SaveAsync(Instance); await Jobs.SaveAsync(Instance.GetWithDailyPartition()); await Jobs.SaveAsync(detail); }
private JobInstanceDetail Abort(string message) { if (Instance == null) { throw new ArgumentNullException("No instance to abort"); } var now = DateTime.UtcNow; Instance.TotalDetails++; JobInstanceDetail detail; if (Instance.CompletedOn.HasValue) { detail = new JobInstanceDetail(Instance.JobId, Instance.InstanceId) { Date = DateTime.UtcNow, Type = JobDetailType.Info, Details = "Instance already completed, abort request ignored" }; } else { Instance.CompletedOn = now; Instance.HasError = true; Instance.LastOn = now; Instance.LastType = JobDetailType.Aborted; Instance.RunningTimeInSeconds = Math.Round(Instance.CompletedOn.Value.Subtract(Instance.StartedOn).TotalSeconds, 2); if (Job.LastInstanceId == Instance.InstanceId) { Job.IsRunning = false; Job.LastInstanceStatusOn = now; Job.LastInstanceStatus = JobDetailType.Aborted; Job.LastInstanceRunningTimeInSeconds = Instance.RunningTimeInSeconds; } detail = new JobInstanceDetail(Instance.JobId, Instance.InstanceId) { Date = DateTime.UtcNow, Type = JobDetailType.Aborted, Details = message }; } return(detail); }
JobInstanceDetail Generate(JobLogLevel type, string details) { var detail = new JobInstanceDetail(Instance.JobId, Instance.InstanceId) { Date = DateTime.UtcNow, Type = type.ToString(), Details = details }; if (type == JobLogLevel.Warning) { Instance.HasWarning = true; } if (type == JobLogLevel.Exception) { Instance.HasException = true; } if (type == JobLogLevel.Error) { Instance.HasError = true; } Instance.TotalDetails++; Instance.LastOn = detail.Date; Instance.LastType = detail.Type; Instance.RunningTimeInSeconds = Math.Round(DateTime.UtcNow.Subtract(Instance.StartedOn).TotalSeconds, 2); Job.LastInstanceStatus = detail.Type; Job.LastInstanceStatusOn = detail.Date; Job.LastInstanceId = Instance.InstanceId; Job.LastInstanceRunningTimeInSeconds = Instance.RunningTimeInSeconds; Job.HasWarning = Instance.HasWarning; Job.HasException = Instance.HasException; Job.HasError = Instance.HasError; return(detail); }
private JobInstanceDetail Complete(string message) { var detail = new JobInstanceDetail(Instance.JobId, Instance.InstanceId) { Date = DateTime.UtcNow, Type = JobDetailType.Complete, Details = message }; Job.LastInstanceStatus = detail.Type; Job.LastInstanceStatusOn = detail.Date; Job.LastInstanceId = Instance.InstanceId; Job.IsRunning = false; Instance.TotalDetails++; Instance.LastOn = detail.Date; Instance.LastType = detail.Type; Instance.CompletedOn = detail.Date; Instance.RunningTimeInSeconds = Math.Round(Instance.CompletedOn.Value.Subtract(Instance.StartedOn).TotalSeconds, 2); Job.LastInstanceRunningTimeInSeconds = Instance.RunningTimeInSeconds; return(detail); }
private JobInstanceDetail FinalStart(string message, Guid?instanceId = null) { Instance = new JobInstance(Job.Id, instanceId.GetValueOrDefault(Guid.NewGuid()), Job.Version); var detail = new JobInstanceDetail(Instance.JobId, Instance.InstanceId) { Date = DateTime.UtcNow, Type = JobDetailType.Started, Details = message }; Instance.TotalDetails = 1; Instance.LastOn = detail.Date; Instance.LastType = detail.Type; Instance.StartedOn = Instance.LastOn; Job.LastInstanceStatusOn = detail.Date; Job.LastInstanceStatus = detail.Type.ToString(); Job.TotalInstances++; Job.LastInstanceId = Instance.InstanceId; Job.IsRunning = true; return(detail); }
/// <summary> /// Deletes the specified job /// </summary> public async Task Delete(JobInstanceDetail job) { var deleteOperation = TableOperation.Delete(job); //TODO??? do weed to return something var result = await JobsTable.ExecuteAsync(deleteOperation); await JobInstanceDetailsTable.ExecuteAsync(deleteOperation); }