Пример #1
0
        public void Run(ConfigurationLookup configs, int numberOfThreads)
        {
            _configs = configs;
            var threads = new List <Task>();

            foreach (var i in Enumerable.Range(0, numberOfThreads))
            {
                _logger.Debug($"Starting thread number {i+1}");
                threads.Add(Task.Factory.StartNew(() => RunTask()));
            }
            Task.WaitAll(threads.ToArray());
        }
 /// <summary>
 /// Update event listener
 /// </summary>
 /// <param name="sender">Sender value</param>
 /// <param name="e">BroadCastEventArgs value</param>
 private void UpdateEventListener(object sender, BroadCastEventArgs e)
 {
     lock (_locker)
     {
         ConfigurationLookup configurationLookUp;
         if (SerializationHelper.TryDeserialize <ConfigurationLookup>(e.MessageRequest.Message, out configurationLookUp))
         {
             ConfigurationLookup configurationLookUpToBeUpdate = _configurationLookUpCaches.Where(cl => cl.ID == configurationLookUp.ID).FirstOrDefault();
             if (configurationLookUpToBeUpdate != null)
             {
                 configurationLookUpToBeUpdate.Name  = configurationLookUp.Name;
                 configurationLookUpToBeUpdate.Value = configurationLookUp.Value;
             }
         }
     }
 }
 /// <summary>
 /// Delete event listener
 /// </summary>
 /// <param name="sender">Sender value</param>
 /// <param name="e">BroadCastEventArgs value</param>
 private void DeleteEventListener(object sender, BroadCastEventArgs e)
 {
     lock (_locker)
     {
         ConfigurationLookup configurationLookUp;
         if (SerializationHelper.TryDeserialize <ConfigurationLookup>(e.MessageRequest.Message, out configurationLookUp))
         {
             ConfigurationLookup configurationLookUpToBeDelete = _configurationLookUpCaches.Where(cl => cl.ID == configurationLookUp.ID).FirstOrDefault();
             if (configurationLookUpToBeDelete != null)
             {
                 _configurationLookUpCaches.Remove(configurationLookUpToBeDelete);
                 _configurationLookUpCaches.OrderByDescending(cl => cl.ID);
             }
         }
     }
 }
 /// <summary>
 /// Delete event listener
 /// </summary>
 /// <param name="sender">Sender value</param>
 /// <param name="broadCastEventArgs">BroadCastEventArgs value</param>
 private static void DeleteEventListener(object sender, BroadCastEventArgs broadCastEventArgs)
 {
     lock (_locker)
     {
         ConfigurationLookup configurationLookUp;
         if (SerializationHelper.TryDeserialize <ConfigurationLookup>(broadCastEventArgs.MessageRequest.Message, out configurationLookUp))
         {
             ConfigurationLookup configurationLookUpToBeDelete = _configurationLookUpCaches.Where(cl => cl.ID == configurationLookUp.ID).FirstOrDefault();
             if (configurationLookUpToBeDelete != null)
             {
                 _configurationLookUpCaches.Remove(configurationLookUpToBeDelete);
                 _configurationLookUpCaches.OrderByDescending(cl => cl.ID);
                 cache.Set(CONFIGURATION_LOOKUP_CACHE_KEY, _configurationLookUpCaches, policy);
             }
         }
     }
 }
Пример #5
0
        static void Main(string[] args)
        {
            var logger = log4net.LogManager.GetLogger("Calculator.Host");

            logger.Info($"Starting calculator host");

            bool run = true;

            if (args.Contains("-drop"))
            {
                QueueItem.DropQueueTable();
                run = false;
            }

            if (args.Contains("-create"))
            {
                QueueItem.CreateQueueTable();
                run = true;
            }

            if (run)
            {
                QueueItem.ResetItems();
                var configs = ConfigurationLookup.Create();

                using (WebApp.Start <Startup>(url: Configurations.WebApiBase))
                {
                    var runner = new QueueProcessorCore();
                    var t      = Task.Factory.StartNew(() =>
                    {
                        runner.Run(configs, Configurations.NumberThreads);
                    });

                    Console.ReadKey();
                    runner.Stop();

                    Task.WaitAll(t);
                }
            }

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }