thread safety for background service
This commit is contained in:
parent
c12a6465f9
commit
a6980252c0
|
@ -17,7 +17,7 @@ namespace AccessQueueService.Services
|
|||
var cleanupIntervalMillis = _config.GetValue<int>("AccessQueue:CleanupIntervalSeconds") * 1000;
|
||||
while (!stoppingToken.IsCancellationRequested)
|
||||
{
|
||||
_accessService.DeleteExpiredTickets();
|
||||
await _accessService.DeleteExpiredTickets();
|
||||
await Task.Delay(cleanupIntervalMillis, stoppingToken);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using AccessQueueService.Data;
|
||||
using System.Threading.Tasks;
|
||||
using AccessQueueService.Data;
|
||||
using AccessQueueService.Models;
|
||||
|
||||
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<bool> RevokeAccess(string userId);
|
||||
public int DeleteExpiredTickets();
|
||||
public Task<int> DeleteExpiredTickets();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue