コード例 #1
0
        private static TaskStatus ProcessSubmittedTask(SubmittedTask task)
        {
            var oneSecond     = 1000;
            var thirtySeconds = 30000;

            // Simulate "Processing"
            Random rnd = new Random();

            Thread.Sleep(rnd.Next(oneSecond, thirtySeconds));

            return(TaskStatus.Finished);
        }
コード例 #2
0
 public static async Task ImportSubmittedTasks()
 {
     try
     {
         // Note: kind of pointless to offload this now, but could be useful if we begin
         // pulling in from multiple states/statuses and need to massage data
         var allQueuedTasks = SubmittedTask.GetTasksByStatus(TaskStatus.Queued);
         foreach (SubmittedTask task in allQueuedTasks)
         {
             await QueueSubmittedTask(task);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine("Error: Unable to query DB for submitted tasks.");
         EventLog.WriteEntry(_eventLogSource, ex.Message, EventLogEntryType.Error);
     }
 }
コード例 #3
0
 private static Task QueueSubmittedTask(SubmittedTask task)
 {
     return(Task.Run(() =>
     {
         try
         {
             //SubmittedTask oldTask; If exists, could pull out to see if varies
             if (!_concurrentSubmittedTasks.ContainsKey(task.Id))
             {
                 _concurrentSubmittedTasks.TryAdd(task.Id, task);
                 _concurrentDirtyTasks.TryAdd(task.Id, task);
             }
         }
         catch (Exception ex)
         {
             Console.WriteLine("Error: Unable to process a submitted task.");
             EventLog.WriteEntry(_eventLogSource, ex.Message, EventLogEntryType.Error);
         }
     }));
 }