Add performance for price reminder
This commit is contained in:
@@ -56,7 +56,7 @@ public class PriceFetcher15MinGrain : Grain, IPriceFetcher15MinGrain, IRemindabl
|
||||
await this.RegisterOrUpdateReminder(
|
||||
FetchPricesReminderName,
|
||||
TimeSpan.FromSeconds(5),
|
||||
TimeSpan.FromMinutes(5));
|
||||
TimeSpan.FromMinutes(7.5));
|
||||
|
||||
await base.OnActivateAsync(cancellationToken);
|
||||
}
|
||||
@@ -184,12 +184,19 @@ public class PriceFetcher15MinGrain : Grain, IPriceFetcher15MinGrain, IRemindabl
|
||||
{
|
||||
if (_timer != null) return;
|
||||
|
||||
// Calculate the next execution time aligned to X-minute boundaries
|
||||
var now = DateTime.UtcNow;
|
||||
var dueTime = CandleHelpers.GetDueTimeForTimeframe(TargetTimeframe, now);
|
||||
var period = TimeSpan.FromSeconds(CandleHelpers.GetBaseIntervalInSeconds(TargetTimeframe));
|
||||
_logger.LogInformation("{0} next execution scheduled in {1} seconds and at {2:} UTC every {3} seconds",
|
||||
nameof(PriceFetcher15MinGrain), dueTime, now.Add(dueTime), period);
|
||||
|
||||
_timer = this.RegisterGrainTimer(
|
||||
async _ => await FetchAndPublishPricesAsync(),
|
||||
new GrainTimerCreationOptions
|
||||
{
|
||||
Period = TimeSpan.FromMinutes(15),
|
||||
DueTime = TimeSpan.FromSeconds(1),
|
||||
Period = period,
|
||||
DueTime = dueTime,
|
||||
KeepAlive = true
|
||||
});
|
||||
|
||||
@@ -216,7 +223,7 @@ public class PriceFetcher15MinGrain : Grain, IPriceFetcher15MinGrain, IRemindabl
|
||||
RegisterAndStartTimer();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user