private void UpdateTask(RenderTask task) { try { CloudBlobContainer container = this.BlobClient.GetContainerReference(ComicConfigSectionGroup.Blob.TaskContainer); CloudBlobDirectory directory = container.GetDirectoryReference(ComicConfigSectionGroup.Blob.RenderTaskDirectory); CloudBlob progressBlob = directory.GetBlobReference(task.TaskId.ToString()); progressBlob.UploadText(task.ToXml()); } catch (Exception x) { this.Log.Error("Unable to update render progress", x); } }
protected JsonResult QueueRender(RenderTask task) { // Queue the task up using Azure Queue services. Store full task information using Blob storage. Only the task id is queued. // This is done because we need public visibility on render tasks before, during and after the task completes. // Save task to storage CloudBlobContainer container = this.BlobClient.GetContainerReference(ComicConfigSectionGroup.Blob.TaskContainer); CloudBlobDirectory directory = container.GetDirectoryReference(ComicConfigSectionGroup.Blob.RenderTaskDirectory); CloudBlob blob = directory.GetBlobReference(task.TaskId.ToString()); blob.UploadText(task.ToXml()); // Queue up task CloudQueue queue = this.QueueClient.GetQueueReference(ComicConfigSectionGroup.Queue.RenderTaskQueue); CloudQueueMessage message = new CloudQueueMessage(task.TaskId.ToString()); queue.AddMessage(message, TimeSpan.FromMinutes(5)); return(this.Json(new ClientRenderTask(task), JsonRequestBehavior.DenyGet)); }