Example #1
0
        public void ConsumeTimedTrigger(TimedTriggerMessage message)
        {
            // Check all modules.
            foreach (string moduleName in moduleCoordinator.ModuleControllers.Keys)
            {
                IModuleController moduleController = moduleCoordinator.ModuleControllers[moduleName];

                // Check if the module is alive.
                if (!moduleController.IsAlive)
                {
                    if (!restartCounts.ContainsKey(moduleName))
                    {
                        restartCounts.Add(moduleName, 0);
                    }

                    if (restartCounts[moduleName] < maxRestartCount)
                    {
                        // Restart module.
                        moduleController.Stop();
                        moduleController.Start();
                        restartCounts[moduleName]++;
                    }
                    else
                    {
                        throw new Exception(string.Format("Module {0} died and could not be restarted.", moduleName));
                    }
                }
            }
        }
Example #2
0
        public void ConsumeTimedTrigger(TimedTriggerMessage message)
        {
            bool     foundMessageToSchedule = false;
            DateTime now = DateTime.Now;

            // Post all messages, which are ready.
            while ((scheduledMessages.Count != 0) && !foundMessageToSchedule)
            {
                // Get the next message.
                ScheduledMessage scheduledMessage = scheduledMessages[0];

                // Is the message ready?
                if (scheduledMessage.DueTime <= now)
                {
                    // Yes -> Post it.
                    moduleCoordinator.PostMessage(scheduledMessage.ModuleName,
                                                  scheduledMessage.Message);
                    scheduledMessages.RemoveAt(0);
                }
                else
                {
                    // There is a message, which is not ready. We have
                    // to set up the scheduler.
                    foundMessageToSchedule = true;
                }
            }

            // If there is still a message, which is not ready, schedule it.
            if (foundMessageToSchedule)
            {
                SetTimedTriggerForMessage(scheduledMessages[0]);
            }
        }
Example #3
0
        public void ConsumeTimedTrigger(TimedTriggerMessage message)
        {
            // Check all modules.
            foreach (string moduleName in moduleCoordinator.ModuleControllers.Keys)
            {
                IModuleController moduleController = moduleCoordinator.ModuleControllers[moduleName];
                
                // Check if the module is alive.
                if (!moduleController.IsAlive)
                {
                    if (!restartCounts.ContainsKey(moduleName))
                    {
                        restartCounts.Add(moduleName, 0);
                    }

                    if (restartCounts[moduleName] < maxRestartCount)
                    {
                        // Restart module.
                        moduleController.Stop();
                        moduleController.Start();
                        restartCounts[moduleName]++;
                    }
                    else
                    {
                        throw new Exception(string.Format("Module {0} died and could not be restarted.", moduleName));
                    }
                }
            }
        }
Example #4
0
        public void ConsumeTimedTrigger(TimedTriggerMessage message)
        {
            bool foundMessageToSchedule = false;
            DateTime now = DateTime.Now;

            // Post all messages, which are ready.
            while ((scheduledMessages.Count != 0) && !foundMessageToSchedule)
            {
                // Get the next message.
                ScheduledMessage scheduledMessage = scheduledMessages[0];

                // Is the message ready?
                if (scheduledMessage.DueTime <= now)
                {
                    // Yes -> Post it.
                    moduleCoordinator.PostMessage(scheduledMessage.ModuleName,
                        scheduledMessage.Message);
                    scheduledMessages.RemoveAt(0);
                }
                else
                {
                    // There is a message, which is not ready. We have 
                    // to set up the scheduler.
                    foundMessageToSchedule = true;
                }
            }

            // If there is still a message, which is not ready, schedule it.
            if (foundMessageToSchedule)
            {
                SetTimedTriggerForMessage(scheduledMessages[0]);
            }
        }