示例#1
0
        public TestActor()
        {
            // A server
            var discoverServers = new string[] { "http://127.0.0.1:4001" };
            var actorConf       = new ActorNodeConfig()
            {
                Name           = "Actor-Test-A",
                DiscoveryParam = discoverServers,
                ActorClass     = "CosmosTest.SampleActor, Cosmos.Test",
            };

            _actorA = ActorRunner.Run(actorConf);
            Assert.AreEqual(_actorA.State, ActorRunState.Running);

            // B Server
            var actorConfB = new ActorNodeConfig()
            {
                Name           = "Actor-Test-B",
                DiscoveryParam = discoverServers,
                ActorClass     = "CosmosTest.SampleActor, Cosmos.Test",
            };

            _actorB = ActorRunner.Run(actorConfB);
            Assert.AreEqual(_actorB.State, ActorRunState.Running);
        }
        public SystemContainer(HelperContainer.Proxy helpers, ServiceContainer services)
        {
            m_MemoryCleaner      = new MemoryCleaner();
            m_MemoryCleanerProxy = new MemoryCleaner.Proxy(m_MemoryCleaner);
            m_ActorRunner        = new ActorRunner();
            m_ActorRunnerProxy   = new ActorRunner.Proxy(m_ActorRunner);

            m_MemoryCleaner.Initialize(helpers.unityStatic, helpers.clock, helpers.memoryStats, services.eventHub);
        }
示例#3
0
 public virtual void StartActor(string actorName)
 {
     foreach (var actorConfig in ProjectConf.TheActorConfigs)
     {
         if (actorConfig.Name == actorName)
         {
             ActorRunner.Run(actorConfig);
             return;
         }
     }
     throw new Exception(string.Format("Not Found Actor on actors.json: {0}", actorName));
 }
示例#4
0
        /// <summary>
        /// Create all actor on actors.json
        ///
        /// 1. load configs
        /// 2. start all actor in configs
        ///
        /// TODO:  check if the actor running, not running then run it !  hot update !
        /// </summary>
        public virtual void StartAll()
        {
            if (_hasStartAll)
            {
                Logger.Error("AppDirector cannot `StartAll` twice!");
                return;
            }

            _hasStartAll = true;
            foreach (var actorConfig in ProjectConf.TheActorConfigs)
            {
                ActorRunner.Run(actorConfig);
            }
        }
示例#5
0
        IEnumerator <object> WaitRunner()
        {
            var actorConf = new ActorNodeConfig
            {
                Name       = "Actor-Test-1",
                ActorClass = "CosmosTest.SampleActor, CosmosTest",
            };
            var runner1 = ActorRunner.Run(actorConf);

            Assert.AreEqual(runner1.SecondsTick, 0);

            while (runner1.State != ActorRunState.Running)
            {
                yield return(null);
            }

            Assert.AreEqual(runner1.State, ActorRunState.Running);
            var runner2 = ActorRunner.GetActorStateByName("Actor-Test-1");

            Assert.AreEqual(runner2.State, ActorRunState.Running);
            Assert.AreEqual(runner2.ActorName, "Actor-Test-1");
        }
示例#6
0
        public static void Main(string[] args)
        {
            var configA = new ActorNodeConfig();

            configA.AppToken       = "AppToken1";
            configA.ActorClass     = "Cosmos.Test.Performance.ActorA, Cosmos.Test.Performance";
            configA.Name           = "TestActorA";
            configA.DiscoveryParam = "discovery.json";

            var configB = new ActorNodeConfig();

            configB.AppToken       = "AppToken1";
            configB.ActorClass     = "Cosmos.Test.Performance.ActorB, Cosmos.Test.Performance";
            configB.Name           = "TestActorB";
            configB.DiscoveryParam = "discovery.json";

            ActorRunner.Run(configA);
            ActorRunner.Run(configB);

            while (true)
            {
                Thread.Sleep(1000);
            }
        }