コード例 #1
0
        public void Given_monitor_sent_shutdown_request_When_suspect_is_active_Then_new_shutdown_request_is_scheduled()
        {
            var recycleConfiguration = new RecycleConfiguration(TimeSpan.FromMilliseconds(200), TimeSpan.FromMilliseconds(600));

            var watched = CreateTestProbe();

            var monitor = Sys.ActorOf(Props.Create(() => new RecycleMonitorActor(recycleConfiguration, watched, null)), "monitor");

            Watch(monitor);

            watched.ExpectMsg <Shutdown.Request>();

            watched.Send(monitor, RecycleMonitorActor.Activity.Instance);
            watched.ExpectNoMsg(TimeSpan.FromMilliseconds(400));

            watched.Send(monitor, RecycleMonitorActor.Activity.Instance);
            watched.ExpectNoMsg(TimeSpan.FromMilliseconds(400));

            watched.Send(monitor, RecycleMonitorActor.Activity.Instance);
            watched.ExpectNoMsg(TimeSpan.FromMilliseconds(400));

            watched.Send(monitor, RecycleMonitorActor.Activity.Instance);
            watched.ExpectNoMsg(TimeSpan.FromMilliseconds(400));

            watched.Send(monitor, RecycleMonitorActor.Activity.Instance);
            watched.ExpectNoMsg(TimeSpan.FromMilliseconds(400));

            watched.ExpectMsg <Shutdown.Request>();
            Sys.Stop(watched);
            ExpectTerminated(monitor);
        }
コード例 #2
0
        public void Given_monitor_When_time_pass_Then_it_sents_shutdown_request_to_Suspect_and_terminates()
        {
            var recycleConfiguration = new RecycleConfiguration(TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(50));

            var watched = CreateTestProbe();

            var monitor = Sys.ActorOf(Props.Create(() => new RecycleMonitorActor(recycleConfiguration, watched, TestActor)), "monitor");

            Watch(monitor);
            watched.ExpectMsg <Shutdown.Request>();
            Sys.Stop(watched);
            ExpectMsg <Shutdown.Complete>();
            ExpectTerminated(monitor);
        }
コード例 #3
0
        private IDomainConfiguration CreateDomainConfiguration(TimeSpan childClearPeriod, TimeSpan childMaxInactiveTime)
        {
            var recycleCfg = new RecycleConfiguration(childClearPeriod, childMaxInactiveTime);
            var balloonDependencyFactory = new BalloonDependencyFactory()
            {
                RecycleConfigurationCreator =
                    () => recycleCfg
            };

            var processManagerDependenciesFactory = new SoftwareProgrammingProcessDependenciesFactory();

            processManagerDependenciesFactory.StateDependencyFactory.RecycleConfigurationCreator
                = () => recycleCfg;

            return(new DomainConfiguration(b => b.RegisterAggregate(balloonDependencyFactory),
                                           b => b.RegisterProcessManager(processManagerDependenciesFactory)));
        }