public void Delete([NotNull] TaskMetaInformation taskMeta) { if (!taskMeta.IsTimeBased()) { throw new InvalidOperationException(string.Format("TaskMeta is not time-based: {0}", taskMeta)); } var timestamp = Timestamp.Now.Ticks; foreach (var blobId in taskMeta.GetTaskExceptionInfoIds()) { timeBasedBlobStorage.Delete(taskMeta.Id, blobId, timestamp); } }
public void ProlongExceptionInfosTtl([NotNull] TaskMetaInformation taskMeta) { if (!taskMeta.IsTimeBased()) { throw new InvalidOperationException(string.Format("TaskMeta is not time-based: {0}", taskMeta)); } var oldExceptionInfos = timeBasedBlobStorage.Read(taskMeta.Id, taskMeta.GetTaskExceptionInfoIds().ToArray()); var timestamp = Timestamp.Now.Ticks; foreach (var exceptionInfo in oldExceptionInfos) { timeBasedBlobStorage.Write(taskMeta.Id, exceptionInfo.Key, exceptionInfo.Value, timestamp, taskMeta.GetTtl()); } }
private TaskExceptionInfo TryGetLastExceptionInfo([NotNull] TaskMetaInformation taskMeta) { if (!taskMeta.IsTimeBased()) { throw new InvalidOperationException(string.Format("TaskMeta is not time-based: {0}", taskMeta)); } var lastExceptionInfoId = taskMeta.GetTaskExceptionInfoIds().LastOrDefault(); if (lastExceptionInfoId == null) { return(null); } var lastExceptionInfoBytes = timeBasedBlobStorage.Read(taskMeta.Id, lastExceptionInfoId); if (lastExceptionInfoBytes == null) { return(null); } return(serializer.Deserialize <TaskExceptionInfo>(lastExceptionInfoBytes)); }