Files
radio-otherway/scheduler/Program.cs
Fergal Moran 5f847732a4 Added files
2023-03-02 06:27:17 +00:00

49 lines
1.2 KiB
C#

using System.Net;
using System.Security.Cryptography.X509Certificates;
using OtherWay.Radio.Scheduler.Services;
using Quartz;
var builder = WebApplication.CreateBuilder(args);
builder.Logging.ClearProviders();
builder.Logging.AddConsole();
// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddHttpClients(builder.Configuration["ServiceSettings:ApiUrl"]);
builder.Services.AddSingleton<ScheduleLoader>();
builder.Services.AddQuartz(q => {
q.SchedulerName = "OtherWay Job Scheduler";
q.UseMicrosoftDependencyInjectionJobFactory();
q.UseSimpleTypeLoader();
q.UseInMemoryStore();
q.UseDefaultThreadPool(tp => { tp.MaxConcurrency = 10; });
});
builder.Services.AddQuartzServer(options => { options.WaitForJobsToComplete = true; });
builder
.Services.BuildServiceProvider()
.GetService<ScheduleLoader>()?
.LoadSchedules()
.ContinueWith(r => { });
var app = builder.Build();
if (app.Environment.IsDevelopment()) {
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();