BasicCluster.Program.Main C# (CSharp) Метод

Main() приватный статический Метод

private static Main ( string args ) : void
args string
Результат void
        private static void Main(string[] args)
        {
            var commonConfig = ConfigurationFactory.ParseString(@"
                akka {
                  actor {
                    provider = ""Akka.Cluster.ClusterActorRefProvider, Akka.Cluster""
                    serializers {
                      wire = ""Akka.Serialization.WireSerializer, Akka.Serialization.Wire""
                    }
                    serialization-bindings {
                      ""System.Object"" = wire
                    }
                  }
                  remote {
                    helios.tcp {
                      hostname = ""127.0.0.1""
                    }
                  }
                  cluster {
                    seed-nodes = [""akka.tcp://[email protected]:3001""]
                    auto-down-unreachable-after = 30s
                  }
                }");

            var producerPort = 3000;
            var consumerPort = 4000;

            var standAlone = args.Length > 0 && args[0] == "standalone";
            if (standAlone)
            {
                CreateClusterNode(commonConfig, ++producerPort, "producer", "consumer");
            }
            else
            {
                CreateClusterNode(commonConfig, ++producerPort, "producer");
                CreateClusterNode(commonConfig, ++consumerPort, "consumer");
                CreateClusterNode(commonConfig, ++consumerPort, "consumer");
            }

            // wait for stop signal

            Action printUsage = () =>
            {
                Console.WriteLine("Press command:");
                Console.WriteLine("[usage]");
                Console.WriteLine("  c [role]   create node (p: producer, c: consumer)");
                Console.WriteLine("  k [role]   kill node (p: producer, c: consumer)");
                Console.WriteLine("  q          quit");
            };

            printUsage();
            while (true)
            {
                var line = Console.ReadLine().ToLower();
                if (line == "q")
                {
                    break;
                }
                else if (line.StartsWith("c "))
                {
                    var name = line.Substring(2).Trim();
                    switch (name)
                    {
                        case "p":
                            CreateClusterNode(commonConfig, ++producerPort, "producer");
                            break;
                        case "c":
                            CreateClusterNode(commonConfig, ++consumerPort, "consumer");
                            break;
                        default:
                            Console.WriteLine("Unknown: " + name);
                            break;
                    }
                }
                else if (line.StartsWith("k "))
                {
                    var name = line.Substring(2).Trim();
                    switch (name)
                    {
                        case "p":
                            KillOneClusterNode("producer");
                            break;
                        case "c":
                            KillOneClusterNode("consumer");
                            break;
                        default:
                            Console.WriteLine("Unknown: " + name);
                            break;
                    }
                }
                else
                {
                    printUsage();
                }
            }

            // shutdown

            _clusterNodes.Reverse();
            foreach (var cluster in _clusterNodes)
            {
                cluster.Context.System.Terminate();
            }
        }