Status for a job that processes a queue.
Most worker tasks store at least one record with the last time the job ran indicating success or fail with a reason. Some may also have a status record for any failed process records indicating how far they made it and with enough details to diagnose and resume with the failed step once a code or data fix is made.
        /// <summary>
        /// Processes the message from the queue and updates the status of the job run
        /// and returns some advanced result options.
        /// </summary>
        /// <param name="message"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        public virtual ProcessMessageResult ProcessMessageAdvanced(CloudQueueMessage message, JobStatus status)
        {
            var success = ProcessMessage(message, status);

            return(new ProcessMessageResult
            {
                DelayNextMessageSeconds = 0.0,
                Success = success
            });
        }
 /// <summary>
 /// Processes the message from the queue and updates the status of the job run.
 /// </summary>
 /// <param name="message"></param>
 /// <param name="status"></param>
 /// <returns></returns>
 public virtual bool ProcessMessage(CloudQueueMessage message, JobStatus status)
 {
     status.Success = ProcessMessage(message);
     return(status.Success);
 }