public void Run(int numConcurrentWorkers, Action<ClusterBuilder> configurator) { try { var clusterBuilder = new ClusterBuilder(); configurator(clusterBuilder); using (var cluster = clusterBuilder.BuildCluster()) { RunAsync(numConcurrentWorkers, cluster).GetAwaiter().GetResult(); } } catch (Exception ex) { Console.WriteLine("Unhandled exception:"); Console.WriteLine(ex.ToString()); } Console.WriteLine("Press Enter to exit"); Console.ReadLine(); }
// methods private ICluster CreateCluster(ClusterKey clusterKey) { var builder = new ClusterBuilder() .ConfigureCluster(settings => ConfigureCluster(settings, clusterKey)) .ConfigureServer(settings => ConfigureServer(settings, clusterKey)) .ConfigureConnectionPool(settings => ConfigureConnectionPool(settings, clusterKey)) .ConfigureConnection(settings => ConfigureConnection(settings, clusterKey)) .ConfigureTcp(settings => ConfigureTcp(settings, clusterKey)); if (clusterKey.UseSsl) { builder.ConfigureSsl(settings => ConfigureSsl(settings, clusterKey)); } if (clusterKey.ClusterConfigurator != null) { clusterKey.ClusterConfigurator(builder); } var cluster = builder.BuildCluster(); cluster.Initialize(); return cluster; }