示例#1
0
 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);
     }
 }
示例#2
0
        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));
        }