Ejemplo n.º 1
0
 public static void RunTopLevelTasks(int currentMinute, CancellationToken token)
 {
     List<EntityServer> servers = null;
     try
     {
         token.ThrowIfCancellationRequested();
         servers = DbRepo.ListServersByMinute(currentMinute);
         Logit.LogInformation("Processing " + servers.Count.ToString() + " servers...");
     }
     catch (Exception exc)
     {
         var errMsg = "Dispatcher Error: " + exc.Message;
         if (exc.InnerException != null)
         {
             errMsg += "-- " + exc.InnerException.Message;
         }
         Logit.LogError(new ApplicationException(errMsg));
     }
     try
     {
         token.ThrowIfCancellationRequested();
         var processor = new TaskProcessor();
         var topLevelTasks = processor.GenerateTopLevelTasks(servers, token);
         Parallel.ForEach(topLevelTasks, topLevelResult =>
         {
         });
         Task.WaitAll(topLevelTasks.ToArray()); //needed to catch aggregate exceptions
     }
     catch (Exception exc)
     {
         Logit.LogError(exc);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// MAIN
        /// </summary>
        /// <param name="args"></param>
        public static void Main(string[] args)
        {
            var startTime    = DateTime.Now;
            var _tokenSource = new CancellationTokenSource();

            Logit.LogInformation("CssDirector starting...");
            CssDispatcher.RunTopLevelTasks(DateTime.Now.Minute, _tokenSource.Token);
            var elapsedTime = String.Format("{0:0.0}", (DateTime.Now - startTime).TotalMilliseconds / 1000);

            Logit.LogInformation("CssDirector finished in " + elapsedTime + " seconds.");
            Console.Write("Type any key to pause...");
            if (ConsoleReadPauseWithTimeout(3))
            {
                Console.Write("\nType any key to exit...");
                Console.ReadKey();
            }
        }