//private async Task Test_Stream_Churn_TimePeriod( // string streamProviderName, // int pipelineSize, // TimeSpan duration, // int numConsumers = 9, // int numProducers = 1) //{ // output.WriteLine("Testing Subscription churn for duration {0} with {1} Consumers and {2} Producers per Stream", // duration, numConsumers, numProducers); // AsyncPipeline pipeline = new AsyncPipeline(pipelineSize); // var promises = new List<Task>(); // Stopwatch sw = Stopwatch.StartNew(); // for (int i = 0; sw.Elapsed <= duration; i++) // { // Guid streamId = Guid.NewGuid(); // Task promise = SetupOneStream(streamId, streamProviderName, pipeline, numConsumers, numProducers); // promises.Add(promise); // } // await Task.WhenAll(promises); // sw.Stop(); // TimeSpan elapsed = sw.Elapsed; // int totalSubscription = numSt* numConsumers); // double rps = totalSubscription/elapsed.TotalSeconds; // output.WriteLine("Subscriptions-per-second = {0} during period {1}", rps, elapsed); // Assert.NotEqual(0.0, rps, "RPS greater than zero"); //} private void WarmUpPubSub(string streamProviderName, Guid[] streamIds, AsyncPipeline pipeline) { int numStreams = streamIds.Length; // Warm up PubSub for the appropriate streams for (int i = 0; i < numStreams; i++) { Guid streamId = streamIds[i]; string extKey = streamProviderName + "_" + this.StreamNamespace; IPubSubRendezvousGrain pubsub = this.GrainFactory.GetGrain <IPubSubRendezvousGrain>(streamId, extKey, null); Task promise = pubsub.Validate(); pipeline.Add(promise); } pipeline.Wait(); }
//private async Task Test_Stream_Churn_TimePeriod( // string streamProviderName, // int pipelineSize, // TimeSpan duration, // int numConsumers = 9, // int numProducers = 1) //{ // output.WriteLine("Testing Subscription churn for duration {0} with {1} Consumers and {2} Producers per Stream", // duration, numConsumers, numProducers); // AsyncPipeline pipeline = new AsyncPipeline(pipelineSize); // var promises = new List<Task>(); // Stopwatch sw = Stopwatch.StartNew(); // for (int i = 0; sw.Elapsed <= duration; i++) // { // Guid streamId = Guid.NewGuid(); // Task promise = SetupOneStream(streamId, streamProviderName, pipeline, numConsumers, numProducers); // promises.Add(promise); // } // await Task.WhenAll(promises); // sw.Stop(); // TimeSpan elapsed = sw.Elapsed; // int totalSubscription = numSt* numConsumers); // double rps = totalSubscription/elapsed.TotalSeconds; // output.WriteLine("Subscriptions-per-second = {0} during period {1}", rps, elapsed); // Assert.NotEqual(0.0, rps, "RPS greater than zero"); //} private void WarmUpPubSub(string streamProviderName, StreamId[] streamIds, AsyncPipeline pipeline) { int numStreams = streamIds.Length; // Warm up PubSub for the appropriate streams for (int i = 0; i < numStreams; i++) { var streamId = new InternalStreamId(streamProviderName, streamIds[i]); _ = streamProviderName + "_" + this.StreamNamespace; IPubSubRendezvousGrain pubsub = this.GrainFactory.GetGrain <IPubSubRendezvousGrain>(streamId.ToString()); Task promise = pubsub.Validate(); pipeline.Add(promise); } pipeline.Wait(); }