public void Execute() { var startDay = DateTime.Today; var r = new Random(); var value = r.Next(-5, 24); foreach (var i in Enumerable.Range(0, 10)) { var day = startDay; Task.Run(() => { var temperatureManager = new TemperatureDeviceEventsGenerator(); temperatureManager.BuildDayStats(day); var context = new ELKContext("temperature"); var dayValues = value + new Random().Next(-5, 5); foreach (var _ in Enumerable.Range(0, 24)) { var @event = temperatureManager.Generate(dayValues); context.WriteDynamicAsync(@event); } temperatureManager.Reset(); context.Dispose(); }); startDay = startDay.AddDays(1); } }
static void Main(string[] args) { var step = Step.Create("Send temperature events", async context => { var startDay = DateTime.Today; var r = new Random(); var value = r.Next(-5, 24); var day = startDay; var temperatureManager = new TemperatureDeviceEventsGenerator(); temperatureManager.BuildDayStats(day); var ctx = new ELKContext("temperature"); var dayValues = value + new Random().Next(-5, 5); var data = Enumerable.Range(0, 24) .Select(x => temperatureManager.Generate(dayValues)); await Task.WhenAll( data.Select(x => ctx.WriteDynamicAsync(x)) ); temperatureManager.Reset(); // ctx.Dispose(); //// you can do any logic here: go to http, websocket etc //await Task.Delay(TimeSpan.FromSeconds(0.1)); return(Response.Ok()); }, 5); // after creating a step you should add it to Scenario. var scenario = ScenarioBuilder .CreateScenario("Testing Temperature Source", new[] { step }) .WithLoadSimulations(new [] { LoadSimulation.NewKeepConcurrentScenarios(50, TimeSpan.FromSeconds(60)) }); NBomberRunner.RegisterScenarios(new[] { scenario }) .RunInConsole(); }
public async Task <int> Handle(AddSubscriber request, CancellationToken cancellationToken) { var sub = new Subscriber { IP = request.IP, Name = request.Name, Type = request.Type }; using var db = new CassandraContext(); using var logStore = new ELKContext(); // db.CreateSubscription(sub); await logStore.LogAsync(new Log { Id = Guid.NewGuid(), Severity = "Info", Message = $"Sub has been created: {sub.Name} IP: {sub.IP}", Time = DateTime.UtcNow, ServiceName = "SubscribeAPI" }); return(0); }