private void PromoteToStarted() { if (StoppedCancellationTokenSource.IsCancellationRequested) { return; } // Logger.Info(ErrorCode.RS_ServiceStarted, "Reminder system target started OK on: {0} x{1,8:X8}, with range {2}", this.Silo, this.Silo.GetConsistentHashCode(), this.myRange); var random = new SafeRandom(); var dueTime = random.NextTimeSpan(Constants.RefreshReminderList); if (listRefreshTimer != null) { listRefreshTimer.Dispose(); } listRefreshTimer = GrainTimer.FromTaskCallback( this.RuntimeClient.Scheduler, _ => ReadAndUpdateReminders(), null, dueTime, Constants.RefreshReminderList, name: "ReminderService.ReminderListRefresher"); listRefreshTimer.Start(); Status = GrainServiceStatus.Started; startedTask.TrySetResult(true); }
public void StartTimer(OrleansTaskScheduler scheduler, Func <object, Task> asyncCallback, Logger Logger) { StopReminder(Logger); // just to make sure. var dueTimeSpan = CalculateDueTime(); Timer = GrainTimer.FromTaskCallback(scheduler, asyncCallback, this, dueTimeSpan, period, name: ReminderName); if (Logger.IsVerbose) { Logger.Verbose("Reminder {0}, Due time{1}", this, dueTimeSpan); } Timer.Start(); }
private void Start() { var random = new SafeRandom(); var randomOffset = random.NextTimeSpan(orleansConfig.Globals.ClientRegistrationRefresh); clientRefreshTimer = GrainTimer.FromTaskCallback( OnClientRefreshTimer, null, randomOffset, orleansConfig.Globals.ClientRegistrationRefresh, "ClientObserverRegistrar.ClientRefreshTimer"); clientRefreshTimer.Start(); if (logger.IsVerbose) { logger.Verbose("Client registrar service started successfully."); } }
private void StartTimer() { if (timer != null) timer.Dispose(); timer = GrainTimer.FromTimerCallback( this.RuntimeClient.Scheduler, this.OnGossipTimerTick, null, this.backgroundGossipInterval, this.backgroundGossipInterval, "MultiCluster.GossipTimer"); timer.Start(); }
protected override async Task StartInBackground() { await DoInitialReadAndUpdateReminders(); if (Status == GrainServiceStatus.Booting) { var random = new SafeRandom(); listRefreshTimer = GrainTimer.FromTaskCallback( _ => DoInitialReadAndUpdateReminders(), null, random.NextTimeSpan(InitialReadRetryPeriod), InitialReadRetryPeriod, name: "ReminderService.ReminderListInitialRead"); listRefreshTimer.Start(); } }
public Task Start() { requestProcessor = GrainTimer.FromTaskCallback(this.RuntimeClient.Scheduler, this.loggerFactory.CreateLogger <GrainTimer>(), ProcessRequests, null, TimeSpan.FromMilliseconds(0), TimeSpan.FromMilliseconds(10), "TransactionAgent"); requestProcessor.Start(); return(Task.CompletedTask); }