From db7d586ee6e686bacc92ac2a2512e7e140f47d8b Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Sun, 4 Aug 2019 20:37:05 -0400 Subject: [PATCH] admin keep alive job --- src/Admin/Jobs/AliveJob.cs | 28 ++++++++++++++++++++++++++++ src/Admin/Jobs/JobsHostedService.cs | 6 ++++++ 2 files changed, 34 insertions(+) create mode 100644 src/Admin/Jobs/AliveJob.cs diff --git a/src/Admin/Jobs/AliveJob.cs b/src/Admin/Jobs/AliveJob.cs new file mode 100644 index 0000000000..0db2cce173 --- /dev/null +++ b/src/Admin/Jobs/AliveJob.cs @@ -0,0 +1,28 @@ +using System.Net.Http; +using System.Threading.Tasks; +using Bit.Core; +using Bit.Core.Jobs; +using Microsoft.Extensions.Logging; +using Quartz; + +namespace Bit.Admin.Jobs +{ + public class AliveJob : BaseJob + { + private readonly GlobalSettings _globalSettings; + private HttpClient _httpClient = new HttpClient(); + + public AliveJob( + GlobalSettings globalSettings, + ILogger logger) + : base(logger) + { + _globalSettings = globalSettings; + } + + protected async override Task ExecuteJobAsync(IJobExecutionContext context) + { + await _httpClient.GetAsync(_globalSettings.BaseServiceUri.Admin); + } + } +} diff --git a/src/Admin/Jobs/JobsHostedService.cs b/src/Admin/Jobs/JobsHostedService.cs index 44b11aa981..4cc63740f7 100644 --- a/src/Admin/Jobs/JobsHostedService.cs +++ b/src/Admin/Jobs/JobsHostedService.cs @@ -29,6 +29,10 @@ namespace Bit.Admin.Jobs var timeZone = _globalSettings.SelfHosted ? TimeZoneInfo.Utc : TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); + var everyTopOfTheHourTrigger = TriggerBuilder.Create() + .StartNow() + .WithCronSchedule("0 0 * * * ?") + .Build(); var everyFridayAt10pmTrigger = TriggerBuilder.Create() .StartNow() .WithCronSchedule("0 0 22 ? * FRI", x => x.InTimeZone(timeZone)) @@ -44,6 +48,7 @@ namespace Bit.Admin.Jobs Jobs = new List> { + new Tuple(typeof(AliveJob), everyTopOfTheHourTrigger), new Tuple(typeof(DatabaseExpiredGrantsJob), everyFridayAt10pmTrigger), new Tuple(typeof(DatabaseUpdateStatisticsJob), everySaturdayAtMidnightTrigger), new Tuple(typeof(DatabaseRebuildlIndexesJob), everySundayAtMidnightTrigger) @@ -54,6 +59,7 @@ namespace Bit.Admin.Jobs public static void AddJobsServices(IServiceCollection services) { + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient();