protected virtual void OnInitialised() { var seedNode = Config.SeedNode; if (!string.Equals(Identity.HostAndPort, seedNode)) { var min = Config.JoinSettings.JoinMinTimeout; var max = Config.JoinSettings.JoinMaxTimeout; var timeout = Config.Random.Next(min, max); Log($"Join Timeout {timeout} ms"); var dueTime = ExpiryCalculator.CalcExpiry(timeout); ActionScheduler.ScheduleAction(dueTime, null, _ => { CommunicationManager.SendInternal(new InitJoin()); }); } }
public CovidDataProvider(ActionScheduler actionScheduler, ILogger <CovidDataProvider> logger, CovidDataDbContext dbContext, IConfiguration configuration) { _actionScheduler = actionScheduler; _logger = logger; _dbContext = dbContext; _configuration = configuration; // ReSharper disable StringLiteralTypo _healthZones = new List <HealthZone> { new HealthZone("Moncton", 1), new HealthZone("Saint John", 2), new HealthZone("Fredericton", 3), new HealthZone("Edmundston", 4), new HealthZone("Campbellton", 5), new HealthZone("Bathurst", 6), new HealthZone("Miramichi", 7) }; // ReSharper restore StringLiteralTypo _zonesDailyInfo = new List <ZoneDailyInfo>(); _provincePastInfo = new List <ProvincePastInfo>(); _zonesRecoveryPhaseInfo = new List <ZoneRecoveryPhaseInfo>(); _dataUpdateTasks = new List <Func <DataUpdateCallback> >(); _actionScheduler.ScheduleAction(DataQueryActionKey, _configuration["CovidQuerySchedule"], QueryUntilDataUpdates); RunOnDataUpdated(() => RecordUpdateToDatabase); // Get data now Task.Run(() => UpdateData(true)); }