Example #1
0
        private static void CurrentDomain_DomainUnload(object sender,
                                                       EventArgs e)
        {
            if (NodeStarter != null)
            {
                NodeStarter.Stop();
            }

            QuitEvent.Set();
        }
Example #2
0
        private static bool ConsoleCtrlCheck(CtrlTypes ctrlType)
        {
            if (ctrlType == CtrlTypes.CtrlCloseEvent ||
                ctrlType == CtrlTypes.CtrlShutdownEvent)
            {
                NodeStarter.Stop();

                QuitEvent.Set();

                return(true);
            }

            return(false);
        }
Example #3
0
        public static void Main()
        {
            var configurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

            XmlConfigurator.ConfigureAndWatch(new FileInfo(configurationFile));

            SetConsoleCtrlHandler(ConsoleCtrlCheck,
                                  true);

            AppDomain.CurrentDomain.DomainUnload       += CurrentDomain_DomainUnload;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            var enableGc   = bool.Parse(ConfigurationManager.AppSettings["EnableGc"]);
            var nodeConfig = new NodeConfiguration(
                new Uri(ConfigurationManager.AppSettings["ManagerLocation"]),
                Assembly.Load(ConfigurationManager.AppSettings["HandlerAssembly"]),
                int.Parse(ConfigurationManager.AppSettings["Port"]),
                ConfigurationManager.AppSettings["NodeName"],
                int.Parse(ConfigurationManager.AppSettings["PingToManagerSeconds"]),
                int.Parse(ConfigurationManager.AppSettings["SendJobDetailToManagerMilliSeconds"]), enableGc
                );

            WhoAmI = "[NODE CONSOLE HOST ( " + nodeConfig.NodeName + ", " + nodeConfig.BaseAddress + " ), " + Environment.MachineName.ToUpper() + "]";
            Logger.InfoWithLineNumber(WhoAmI + " : started.");

            var builder = new ContainerBuilder();

            builder.RegisterModule(new WorkerModule());
            Container = builder.Build();

            NodeStarter = new NodeStarter();

            NodeStarter.Start(nodeConfig,
                              Container);

            QuitEvent.WaitOne();
        }