Compare commits
2 Commits
c12a6465f9
...
3dc21bc54d
Author | SHA1 | Date |
---|---|---|
|
3dc21bc54d | |
|
a6980252c0 |
|
@ -3,20 +3,15 @@ using AccessQueueService.Services;
|
||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
// Add services to the container.
|
|
||||||
|
|
||||||
builder.Services.AddControllers();
|
builder.Services.AddControllers();
|
||||||
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
|
||||||
builder.Services.AddEndpointsApiExplorer();
|
builder.Services.AddEndpointsApiExplorer();
|
||||||
builder.Services.AddSwaggerGen();
|
builder.Services.AddSwaggerGen();
|
||||||
builder.Services.AddSingleton<IAccessService, AccessService>();
|
builder.Services.AddSingleton<IAccessService, AccessService>();
|
||||||
builder.Services.AddSingleton<IAccessQueueRepo, TakeANumberAccessQueueRepo>();
|
builder.Services.AddSingleton<IAccessQueueRepo, TakeANumberAccessQueueRepo>();
|
||||||
builder.Services.AddHostedService<AccessCleanupBackgroundService>();
|
builder.Services.AddHostedService<AccessCleanupBackgroundService>();
|
||||||
|
|
||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
// Configure the HTTP request pipeline.
|
|
||||||
if (app.Environment.IsDevelopment())
|
if (app.Environment.IsDevelopment())
|
||||||
{
|
{
|
||||||
app.UseSwagger();
|
app.UseSwagger();
|
||||||
|
|
|
@ -17,7 +17,7 @@ namespace AccessQueueService.Services
|
||||||
var cleanupIntervalMillis = _config.GetValue<int>("AccessQueue:CleanupIntervalSeconds") * 1000;
|
var cleanupIntervalMillis = _config.GetValue<int>("AccessQueue:CleanupIntervalSeconds") * 1000;
|
||||||
while (!stoppingToken.IsCancellationRequested)
|
while (!stoppingToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
_accessService.DeleteExpiredTickets();
|
await _accessService.DeleteExpiredTickets();
|
||||||
await Task.Delay(cleanupIntervalMillis, stoppingToken);
|
await Task.Delay(cleanupIntervalMillis, stoppingToken);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using AccessQueueService.Data;
|
using System.Threading.Tasks;
|
||||||
|
using AccessQueueService.Data;
|
||||||
using AccessQueueService.Models;
|
using AccessQueueService.Models;
|
||||||
|
|
||||||
namespace AccessQueueService.Services
|
namespace AccessQueueService.Services
|
||||||
|
@ -106,6 +107,17 @@ namespace AccessQueueService.Services
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int DeleteExpiredTickets() => _accessQueueRepo.DeleteExpiredTickets();
|
public async Task<int> DeleteExpiredTickets()
|
||||||
|
{
|
||||||
|
await _queueLock.WaitAsync();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return _accessQueueRepo.DeleteExpiredTickets();
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
_queueLock.Release();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,6 @@ namespace AccessQueueService.Services
|
||||||
{
|
{
|
||||||
public Task<AccessResponse> RequestAccess(string userId);
|
public Task<AccessResponse> RequestAccess(string userId);
|
||||||
public Task<bool> RevokeAccess(string userId);
|
public Task<bool> RevokeAccess(string userId);
|
||||||
public int DeleteExpiredTickets();
|
public Task<int> DeleteExpiredTickets();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue