Ejemplo n.º 1
0
        public void RegisterCustomRouting(System.Web.Routing.RouteCollection routes)
        {
            base.ExecuteMethod("RegisterCustomRouting", delegate()
            {
                this.IFoundation.Container.RegisterInstance <INotifySynchronizer>(new ElasticSyncNotifySynchronizer(this.IFoundation));

                IDaemonManager daemonManager       = this.IFoundation.GetDaemonManager();
                ISettingsResolver settingsResolver = this.IFoundation.Resolve <ISettingsResolver>();
                bool isBackPane = settingsResolver.IsBackPane();
                bool isHydrate  = settingsResolver.IsHydrate();
                if (isBackPane)
                {
                    DaemonConfig config = new DaemonConfig()
                    {
                        InstanceName           = string.Format(ElasticSearchDaemon.DAEMON_NAME_FORMAT, Agents.AGENT_DEFAULT),
                        ContinueOnError        = true,
                        IntervalMilliSeconds   = (int)TimeSpan.FromSeconds(30).TotalMilliseconds,
                        StartDelayMilliSeconds = 15,
                        TaskConfiguration      = string.Empty
                    };
                    daemonManager.RegisterDaemon(config, new ElasticSearchDaemon(this.IFoundation, Agents.AGENT_DEFAULT), true);

                    config = new DaemonConfig()
                    {
                        InstanceName           = string.Format(ElasticSearchDaemon.DAEMON_NAME_FORMAT, Agents.AGENT_STATS),
                        ContinueOnError        = true,
                        IntervalMilliSeconds   = (int)TimeSpan.FromSeconds(30).TotalMilliseconds,
                        StartDelayMilliSeconds = 25,
                        TaskConfiguration      = string.Empty
                    };
                    daemonManager.RegisterDaemon(config, new ElasticSearchDaemon(this.IFoundation, Agents.AGENT_STATS), true);
                }
            });
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Not Aspect Wrapped
        /// </summary>
        protected static TWorker EnsureWorker <TWorker>(IFoundation foundation, string workerName, int millisecondInterval = 5000)
            where TWorker : WorkerBase <TRequest>
        {
            IDaemonManager daemonManager = foundation.GetDaemonManager();
            IDaemonTask    daemonTask    = daemonManager.GetRegisteredDaemonTask(workerName);

            if (daemonTask == null)
            {
                lock (_RegistrationLock)
                {
                    daemonTask = daemonManager.GetRegisteredDaemonTask(workerName);
                    if (daemonTask == null)
                    {
                        if (millisecondInterval <= 1000)
                        {
                            millisecondInterval = 5000; // if you give bad data, we force to 5 seconds.
                        }
                        DaemonConfig config = new DaemonConfig()
                        {
                            InstanceName           = workerName,
                            ContinueOnError        = true,
                            IntervalMilliSeconds   = millisecondInterval,
                            StartDelayMilliSeconds = 0,
                            TaskConfiguration      = string.Empty
                        };
                        TWorker worker = (TWorker)foundation.Container.Resolve(typeof(TWorker), null);
                        daemonManager.RegisterDaemon(config, worker, true);
                    }
                }
                daemonTask = daemonManager.GetRegisteredDaemonTask(workerName);
            }
            return(daemonTask as TWorker);
        }
Ejemplo n.º 3
0
        public void RegisterCustomRouting(System.Web.Routing.RouteCollection routes)
        {
            base.ExecuteMethod("RegisterCustomRouting", delegate()
            {
                AmazonUploadFile uploadFile = new AmazonUploadFile(this.IFoundation);
                this.IFoundation.Container.RegisterInstance <IUploadFiles>(uploadFile);
                this.IFoundation.Container.RegisterInstance <INotifyEncoder>(uploadFile);

                this.IFoundation.Container.RegisterInstance <IProcessImage>(new AmazonImageResizeDaemon(this.IFoundation)); // isolated instance, isnt actually ran as a daemon

                IDaemonManager daemonManager       = this.IFoundation.GetDaemonManager();
                ISettingsResolver settingsResolver = this.IFoundation.Resolve <ISettingsResolver>();
                bool isBackPane  = settingsResolver.IsBackPane();
                bool isLocalHost = settingsResolver.IsLocalHost();
                bool isHydrate   = settingsResolver.IsHydrate();
                if (isBackPane && !isLocalHost && !isHydrate)
                {
                    DaemonConfig config = new DaemonConfig()
                    {
                        InstanceName           = AmazonEncodingDaemon.DAEMON_NAME,
                        ContinueOnError        = true,
                        IntervalMilliSeconds   = (int)TimeSpan.FromMinutes(1).TotalMilliseconds,
                        StartDelayMilliSeconds = 15,
                        TaskConfiguration      = string.Empty
                    };
                    daemonManager.RegisterDaemon(config, new AmazonEncodingDaemon(this.IFoundation), true);

                    config = new DaemonConfig()
                    {
                        InstanceName           = AmazonImageResizeDaemon.DAEMON_NAME,
                        ContinueOnError        = true,
                        IntervalMilliSeconds   = (int)TimeSpan.FromMinutes(1).TotalMilliseconds,
                        StartDelayMilliSeconds = 15,
                        TaskConfiguration      = string.Empty
                    };
                    daemonManager.RegisterDaemon(config, new AmazonImageResizeDaemon(this.IFoundation), true);
                }
            });
        }