public static async Task Start(string port, string seqPort) { const string clusterName = "test"; var log = LoggerFactory.Create(x => x.AddSeq($"http://localhost:{seqPort}").SetMinimumLevel(LogLevel.Debug)); Log.SetLoggerFactory(log); Console.WriteLine("Starting worker"); var system = new ActorSystem(); var serialization = new Serialization(); var cluster = new Cluster(system, serialization); var grains = new Grains(cluster); serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); grains.HelloGrainFactory(() => new HelloGrain()); await cluster.Start( clusterName, "127.0.0.1", int.Parse(port), new ConsulProvider(new ConsulProviderOptions { DeregisterCritical = TimeSpan.FromSeconds(2) }) ); Console.WriteLine("Started worked on " + system.ProcessRegistry.Address); Console.ReadLine(); await cluster.Shutdown(); }
public Sandbox Play() { CreateTemporaryDirectory(); Grains.ToList().ForEach(x => x.Setup(this)); return(this); }
static async Task Main(string[] args) { var system = new ActorSystem(); var remoteConfig = GrpcCoreRemoteConfig .BindToLocalhost(12000) .WithProtoMessages(ProtosReflection.Descriptor); var consulProvider = new ConsulProvider(new ConsulProviderConfig(), c => c.Address = new Uri("http://consul:8500/")); var clusterConfig = ClusterConfig.Setup("MyCluster", consulProvider, new PartitionIdentityLookup()); system .WithRemote(remoteConfig) .WithCluster(clusterConfig); var grains = new Grains(system.Cluster()); grains.HelloGrainFactory(() => new HelloGrain()); await system.Cluster().StartMemberAsync(); Console.CancelKeyPress += async(e, y) => { Console.WriteLine("Shutting Down..."); await system.Cluster().ShutdownAsync(); }; await Task.Delay(-1); }
static async Task Main(string[] args) { var system = new ActorSystem(); var serialization = new Serialization(); var cluster = new Cluster(system, serialization); var grains = new Grains(cluster); serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); await cluster.Start("MyCluster", "node1", 12001, new ConsulProvider(new ConsulProviderOptions(), c => c.Address = new Uri("http://consul:8500/"))); await Task.Delay(2000); var client = grains.HelloGrain("Roger"); var res = client.SayHello(new HelloRequest()).Result; Console.WriteLine(res.Message); res = client.SayHello(new HelloRequest()).Result; Console.WriteLine(res.Message); Console.CancelKeyPress += async(e, y) => { Console.WriteLine("Shutting Down..."); await cluster.Shutdown(); }; await Task.Delay(-1); }
public static void Start() { var clusterName = "cluster" + DateTime.Now.Ticks; StartConsulDevMode(); Serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); Cluster.Start(clusterName, "127.0.0.1", 0, new ConsulProvider(new ConsulProviderOptions())); for (int i = 0; i < 30; i++) { var psi = new ProcessStartInfo("dotnet", "bin/" + "release" + "/netcoreapp1.1/TestApp.dll " + clusterName) { // UseShellExecute = false }; Process.Start(psi); } EventStream.Instance.Subscribe <ClusterTopologyEvent>(e => { Console.Write("T"); }); var options = new GrainCallOptions() { RetryCount = 10, RetryAction = async i => { Console.Write("!"); i++; await Task.Delay(i *i * 50); }, }; var tasks = new List <Task>(); for (int i = 0; i < 20000; i++) { var client = Grains.HelloGrain("name" + i % 200); var task = client.SayHello(new HelloRequest(), CancellationToken.None, options).ContinueWith(t => { if (t.Status == TaskStatus.RanToCompletion) { Console.Write("."); } else { Console.Write("#"); } }); tasks.Add(task); } Task.WaitAll(tasks.ToArray()); Console.WriteLine("Done!"); Console.ReadLine(); }
static void Main(string[] args) { Serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); Grains.HelloGrainFactory(() => new HelloGrain()); Cluster.Start("MyCluster", "127.0.0.1", 12000, new ConsulProvider(new ConsulProviderOptions())); Console.ReadLine(); }
public static void Start(string clusterName) { // Console.WriteLine("Starting worker"); Serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); Grains.HelloGrainFactory(() => new HelloGrain()); Cluster.Start(clusterName, "127.0.0.1", 0, new ConsulProvider(new ConsulProviderOptions())); Console.ReadLine(); }
public void Test_total_grains() { System.Console.WriteLine(Grains.Square(1)); System.Console.WriteLine(Grains.Square(2)); System.Console.WriteLine(Grains.Square(3)); System.Console.WriteLine(Grains.Square(4)); System.Console.WriteLine(Grains.Square(5)); Assert.That(Grains.Total(), Is.EqualTo(18446744073709551615)); }
private static void Main(string[] args) { Serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); Grains.HelloGrainFactory(() => new HelloGrain()); Cluster.Start("BorisNodeTest", "127.0.0.1", 12000, new ConsulProvider(new ConsulProviderOptions(), c => c.Address = new Uri("http://127.0.0.1:8500/"))); Thread.Sleep(System.Threading.Timeout.Infinite); Console.WriteLine("Shutting Down..."); Cluster.Shutdown(); }
public static async Task Start() { var log = LoggerFactory.Create(x => x.AddSeq().SetMinimumLevel(LogLevel.Debug)); Log.SetLoggerFactory(log); var logger = log.CreateLogger("Client"); logger.LogInformation("Test"); const string clusterName = "test"; var system = new ActorSystem(); var serialization = new Serialization(); var cluster = new Cluster(system, serialization); var grains = new Grains(cluster); serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); await cluster.Start( clusterName, "127.0.0.1", 0, new ConsulProvider(new ConsulProviderOptions { DeregisterCritical = TimeSpan.FromSeconds(2) }) ); system.EventStream.Subscribe<ClusterTopologyEvent>(e => logger.LogInformation("Topology changed {@Event}", e)); system.EventStream.Subscribe<MemberStatusEvent>(e => logger.LogInformation("Member status {@Event}", e)); var options = new GrainCallOptions { RetryCount = 10, RetryAction = i => { Console.Write("!"); return Task.Delay(50); } }; Console.WriteLine("Ready to send messages, press Enter"); Console.ReadLine(); var policy = Policy.Handle<TaskCanceledException>().RetryForeverAsync(); for (var i = 0; i < 100000; i++) { var client = grains.HelloGrain("name" + i % 200); await policy.ExecuteAsync( () => client.SayHello(new HelloRequest(), CancellationToken.None, options) ); Console.Write("."); } Console.WriteLine("Done!"); Console.ReadLine(); await cluster.Shutdown(); }
static void Main(string[] args) { Serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); Remote.Start("127.0.0.1", 12001); Cluster.Start("MyCluster", new ConsulProvider(new ConsulProviderOptions())); var client = Grains.HelloGrain("TheName"); var res = client.SayHello(new HelloRequest()).Result; Console.WriteLine(res.Message); Console.ReadLine(); }
public void GrowGrains() { for (int i = 0; i < Width - 1; i++) { for (int j = 0; j < Height - 1; j++) { Grain currentGrain = GrainsInPreviousStep[i, j]; Grain grainNeighbour = currentGrain.CheckNeigbours(); if (grainNeighbour.IsAlive()) { GrainsInCurrentStep[i, j].Reviev(currentGrain); Grains.Add(currentGrain); } } } }
static void Main(string[] args) { StartConsulDevMode(); Serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); Cluster.Start("MyCluster", "127.0.0.1", 12001, new ConsulProvider(new ConsulProviderOptions())); var client = Grains.HelloGrain("Roger"); var res = client.SayHello(new HelloRequest()).Result; Console.WriteLine(res.Message); Console.ReadLine(); res = client.SayHello(new HelloRequest()).Result; Console.WriteLine(res.Message); Console.ReadLine(); Console.WriteLine("Shutting Down..."); Cluster.Shutdown(); }
static async Task Main(string[] args) { var system = new ActorSystem(); var serialization = new Serialization(); var cluster = new Cluster(system, serialization); var grains = new Grains(cluster); serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); grains.HelloGrainFactory(() => new HelloGrain()); await cluster.Start("MyCluster", "node2", 12000, new ConsulProvider(new ConsulProviderOptions(), c => c.Address = new Uri("http://consul:8500/"))); Console.CancelKeyPress += async(e, y) => { Console.WriteLine("Shutting Down..."); await cluster.Shutdown(); }; await Task.Delay(-1); }
private static void Main(string[] args) { Serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); Cluster.Start("BorisNodeTest", "127.0.0.1", 12001, new ConsulProvider(new ConsulProviderOptions())); int counter = 300; var client = Grains.HelloGrain("Grain2"); while (counter < 400) { var res = client.SayHello((new HelloRequest() { Sleep = 100, Count = counter })).Result; Console.WriteLine(res.Message); counter++; } Thread.Sleep(System.Threading.Timeout.Infinite); Console.WriteLine("Shutting Down..."); Cluster.Shutdown(); }
public string ToMarkdown() { var sb = new StringBuilder(); sb.Append(this.GenerateHeader()); sb.AppendLine(); sb.AppendLine("## Grain"); sb.AppendLine(); if (Grains.Any()) { sb.AppendLine("| Name | Amount %|"); sb.AppendLine("| ---- | ------: |"); foreach (var grain in Grains) { sb.AppendLine(grain.ToMarkdown()); } sb.AppendLine(); } if (Hops.Any()) { sb.AppendLine("## Hops"); sb.AppendLine(); sb.AppendLine("| Name | Amount | Time |"); sb.AppendLine("| ---- | -----: | ---: |"); foreach (var hop in Hops) { sb.AppendLine(hop.ToMarkdown()); } sb.AppendLine(); } sb.AppendLine("## Yeast"); sb.AppendLine(Yeast); sb.AppendLine(); sb.AppendLine("## Notes"); sb.AppendLine(Notes); return(sb.ToString()); }
public List <Grain> InitializeBoard(int boardWidth, int boardHeight, int penColors) { Random random = new Random(); for (int i = 0; i < penColors; i++) { Pen color = new Pen(Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 255))); PenColors.Add(color); } for (int i = 0; i < boardWidth; i++) { for (int j = 0; j < boardHeight; j++) { Point position = new Point(i, j); int colorIndex = random.Next(PenColors.Count); Grain grain = new Grain(position, PenColors[colorIndex]); grain.SetGrainAlive(); Grains.Add(grain); } } return(Grains); }
public void Test_total_grains() { Assert.That(Grains.Total(), Is.EqualTo(18446744073709551615)); }
public void Test_square_1() { Assert.That(Grains.Square(1), Is.EqualTo(1)); }
public void Test_square_32() { Assert.That(Grains.Square(32), Is.EqualTo(2147483648)); }
public void Test_square_64() { Assert.That(Grains.Square(64), Is.EqualTo(9223372036854775808)); }
public void Test_square_4() { Assert.That(Grains.Square(4), Is.EqualTo(8)); }
public void Test_square_16() { Assert.That(Grains.Square(16), Is.EqualTo(32768)); }
public void Test_square_2() { Assert.That(Grains.Square(2), Is.EqualTo(2)); }
public void Test_square_3() { Assert.That(Grains.Square(3), Is.EqualTo(4)); }
public void Returns_the_total_number_of_grains_on_the_board() { Assert.Equal(18446744073709551615UL, Grains.Total()); }
public void Square_greater_than_64_raises_an_exception() { Assert.Throws <ArgumentOutOfRangeException>(() => Grains.Square(65)); }
public void Grains_on_square_1() { Assert.Equal(1UL, Grains.Square(1)); }
public void Negative_square_raises_an_exception() { Assert.Throws <ArgumentOutOfRangeException>(() => Grains.Square(-1)); }
public void Square_0_raises_an_exception() { Assert.Throws <ArgumentOutOfRangeException>(() => Grains.Square(0)); }