private void RunStatePersistenceTest2(string instanceName)
        {
            Debug.WriteLine($"Start of {nameof(RunStatePersistenceTest2)}");

            BlobStoragePersistenceProvider prov = new BlobStoragePersistenceProvider();

            prov.InitializeAsync(instanceName, new Dictionary <string, object>()
            {
                { "StorageConnectionString", storageConnStr }
            }, purgeOnStart: false).Wait();

            var         cfg       = SbAkkaTest.GetLocaSysConfig();
            ActorSystem sysLocal  = new ActorSystem($"{nameof(BlobStatePersistenceTest)}/local", cfg);
            ActorSystem sysRemote = new ActorSystem($"{nameof(BlobStatePersistenceTest)}/remote", SbAkkaTest.GetRemoteSysConfig(), persistenceProvider: prov);

            CancellationTokenSource src = new CancellationTokenSource();

            var task = Task.Run(() =>
            {
                sysRemote.Start(src.Token);

                prov.Purge().Wait();
            });

            ActorReference actorRef1 = sysLocal.CreateActor <CounterActor>(1);

            var response = actorRef1.Ask <long>((long)1).Result;

            Assert.IsTrue(response == 50);

            src.Cancel();

            Debug.WriteLine($"End of {nameof(RunStatePersistenceTest2)}");
        }
コード例 #2
0
        private void RunStatePersistenceTest1(string instanceName)
        {
            Debug.WriteLine($"Start of {nameof(RunStatePersistenceTest1)}");

            BlobStoragePersistenceProvider prov = new BlobStoragePersistenceProvider();
            //prov.InitializeAsync(instanceName, new Dictionary<string, object>() { { "StorageConnectionString", storageConnStr } }, purgeOnStart: false).Wait();

            var         cfg      = DotNetActorsTests.GetLocaSysConfig();
            ActorSystem sysLocal = new ActorSystem($"{nameof(BlobStatePersistenceTest)}/local", cfg);

            // TODO: Passing persistence provider null until connection string is not fixed
            ActorSystem sysRemote = new ActorSystem($"{nameof(BlobStatePersistenceTest)}/remote", DotNetActorsTests.GetRemoteSysConfig(), null);

            CancellationTokenSource src = new CancellationTokenSource();

            var task = Task.Run(() =>
            {
                sysRemote.Start(src.Token);
            });

            ActorReference actorRef1 = sysLocal.CreateActor <CounterActor>(1);

            var response = actorRef1.Ask <long>((long)42).Result;

            Assert.IsTrue(response == 42);

            response = actorRef1.Ask <long>((long)7).Result;

            Assert.IsTrue(response == 49);

            src.Cancel();

            Debug.WriteLine($"End of {nameof(RunStatePersistenceTest1)}");
        }
コード例 #3
0
        public void Start(string[] args)
        {
            ActorSbConfig cfg = new ActorSbConfig();

            var builder = new ConfigurationBuilder();

            builder.AddCommandLine(args);
            builder.AddEnvironmentVariables();
            IConfigurationRoot configArgs = builder.Build();

            cfg.SbConnStr                  = configArgs["SbConnStr"];
            cfg.ReplyMsgQueue              = configArgs["ReplyMsgQueue"];
            cfg.RequestMsgTopic            = configArgs["RequestMsgTopic"];
            cfg.TblStoragePersistenConnStr = configArgs["TblStoragePersistenConnStr"];
            cfg.ActorSystemName            = configArgs["ActorSystemName"];
            cfg.RequestSubscriptionName    = configArgs["SubscriptionName"];
            string systemName = configArgs["SystemName"];

            Console.CancelKeyPress += (sender, eventArgs) =>
            {
                tokenSrc.Cancel();
            };

            BlobStoragePersistenceProvider prov = null;

            if (String.IsNullOrEmpty(cfg.TblStoragePersistenConnStr) == false)
            {
                prov = new BlobStoragePersistenceProvider();
            }

            prov.InitializeAsync(cfg.ActorSystemName, new Dictionary <string, object>()
            {
                { "StorageConnectionString", cfg.TblStoragePersistenConnStr }
            }, purgeOnStart: false, logger: this.logger).Wait();

            akkaClusterSystem = new AkkaSb.Net.ActorSystem($"{systemName}", cfg, logger, prov);
            akkaClusterSystem.Start(tokenSrc.Token);

            Console.WriteLine("Press any key to stop Actor SB system.");
        }