Exemple #1
0
        public void SetState(string state, ISubscriptionPersistence persistence, string nodeId)
        {
            Timesout = false;

            switch (state)
            {
            case MonitoredNode.HealthyAndFunctional:
                IsFullyFunctionalAndActive();
                persistence.Alter(nodeId, node => node.AddOwnership(Subject));

                break;

            case MonitoredNode.ThrowsExceptionOnStartupOrHealthCheck:
                ActivationException      = new DivideByZeroException();
                AssertAvailableException = new HandshakeException();
                break;

            case MonitoredNode.TimesOutOnStartupOrHealthCheck:
                Timesout = true;
                break;

            case MonitoredNode.IsInactive:
                IsFullyFunctional();
                IsActive = false;
                break;
            }
        }
Exemple #2
0
        public void Startup(ISubscriptionPersistence subscriptions, ISchedulePersistence schedules)
        {
            Services.ReplaceService(subscriptions);
            Services.ReplaceService(schedules);

            _runtime = ToRuntime();
        }
Exemple #3
0
        public MonitoredNodeGroup()
        {
            _port = PortFinder.FindPort(5500);

            AlterSettings <KatanaSettings>(_ => {
                _.AutoHostingEnabled = true;
                _.Port = _port;
            });

            Services(_ => {
                _.ReplaceService <ISchedulePersistence, RavenDbSchedulePersistence>();
                _.ReplaceService <ISubscriptionPersistence, RavenDbSubscriptionPersistence>();
            });


            ReplaceSettings(RavenDbSettings.InMemory());

            Import <MonitoredTransportRegistry>();

            container = new Container(_ =>
            {
                _.ForSingletonOf <MonitoredNodeGroup>().Use(this);
            });

            _runtime = FubuApplication.For(this).StructureMap(container).Bootstrap();

            _runtime.Factory.Get <ChannelGraph>().Name = "Monitoring";
            _subscriptions = _runtime.Factory.Get <ISubscriptionPersistence>();
            _schedules     = _runtime.Factory.Get <ISchedulePersistence>();
            _store         = _runtime.Factory.Get <IDocumentStore>();
        }
        public MonitoredNodeGroup()
        {
            _port = PortFinder.FindPort(5500);

            AlterSettings<KatanaSettings>(_ =>
            {
                _.AutoHostingEnabled = true;
                _.Port = _port;
            });

            Services(_ =>
            {
                _.ReplaceService<ISchedulePersistence, RavenDbSchedulePersistence>();
                _.ReplaceService<ISubscriptionPersistence, RavenDbSubscriptionPersistence>();
            });

            ReplaceSettings(RavenDbSettings.InMemory());

            Import<MonitoredTransportRegistry>();

            container = new Container(_ => { _.ForSingletonOf<MonitoredNodeGroup>().Use(this); });

            _runtime = FubuApplication.For(this).StructureMap(container).Bootstrap();

            _runtime.Factory.Get<ChannelGraph>().Name = "Monitoring";
            _subscriptions = _runtime.Factory.Get<ISubscriptionPersistence>();
            _schedules = _runtime.Factory.Get<ISchedulePersistence>();
            _store = _runtime.Factory.Get<IDocumentStore>();
        }
Exemple #5
0
        public void Startup(ISubscriptionPersistence subscriptions, ISchedulePersistence schedules)
        {
            Services(_ => {
                _.ReplaceService(subscriptions);
                _.ReplaceService(schedules);
            });

            _runtime = FubuTransport.For(this).StructureMap().Bootstrap();
        }
        public void Startup(bool monitoringEnabled, ISubscriptionPersistence persistence)
        {
            AlterSettings <LightningQueueSettings>(x => x.DisableIfNoChannels = true);

            Services(_ => _sources.Each(_.AddService <IPersistentTaskSource>));
            Services(_ => _.ReplaceService(persistence));
            HealthMonitoring
            .ScheduledExecution(monitoringEnabled ? ScheduledExecution.WaitUntilInterval : ScheduledExecution.Disabled)
            .IntervalSeed(3);

            _runtime = FubuTransport.For(this).StructureMap().Bootstrap();
            var controller = _runtime.Factory.Get <IPersistentTaskController>();

            _initialTasks.Each(subject => {
                controller.TakeOwnership(subject).Wait(1.Seconds());
            });
        }
Exemple #7
0
        public void Startup(bool monitoringEnabled, ISubscriptionPersistence persistence)
        {
            AlterSettings <LightningQueueSettings>(x => x.DisableIfNoChannels = true);

            _sources.Each(x => Services.AddService <IPersistentTaskSource>(x));

            Services.ReplaceService(persistence);
            ServiceBus.HealthMonitoring
            .ScheduledExecution(monitoringEnabled
                    ? ScheduledExecution.WaitUntilInterval
                    : ScheduledExecution.Disabled)
            .IntervalSeed(3);

            _runtime = ToRuntime();
            var controller = _runtime.Factory.Get <IPersistentTaskController>();

            _initialTasks.Each(subject => controller.TakeOwnership(subject).Wait(1.Seconds()));
        }
Exemple #8
0
 public SubscriptionRepository(ChannelGraph graph, ISubscriptionPersistence persistence)
 {
     _graph       = graph;
     _persistence = persistence;
 }
 public SubscriptionRepository(ChannelGraph graph, ISubscriptionPersistence persistence)
 {
     _graph = graph;
     _persistence = persistence;
 }
Exemple #10
0
 public SubscriptionsFubuDiagnostics(ISubscriptionPersistence persistence)
 {
     _persistence = persistence;
 }
        public void SetState(string state, ISubscriptionPersistence persistence, string nodeId)
        {
            Timesout = false;

            switch (state)
            {
                case MonitoredNode.HealthyAndFunctional:
                    IsFullyFunctionalAndActive();
                    persistence.Alter(nodeId, node => node.AddOwnership(Subject));

                    break;

                case MonitoredNode.ThrowsExceptionOnStartupOrHealthCheck:
                    ActivationException = new DivideByZeroException();
                    AssertAvailableException = new HandshakeException();
                    break;

                case MonitoredNode.TimesOutOnStartupOrHealthCheck:
                    Timesout = true;
                    break;

                case MonitoredNode.IsInactive:
                    IsFullyFunctional();
                    IsActive = false;
                    break;
            }
        }
 public SubscriptionsFubuDiagnostics(ISubscriptionPersistence persistence)
 {
     _persistence = persistence;
 }