InstanceRegistrationContext - async
This commit is contained in:
parent
e5749eb986
commit
71073f4e88
@ -29,7 +29,7 @@ namespace ASC.Core.Common.Hosting.Interfaces;
|
||||
[Scope]
|
||||
public interface IRegisterInstanceDao<T> where T : IHostedService
|
||||
{
|
||||
Task AddOrUpdate(InstanceRegistration obj);
|
||||
Task<IEnumerable<InstanceRegistration>> GetAll();
|
||||
Task Delete(string instanceId);
|
||||
Task AddOrUpdateAsync(InstanceRegistration obj);
|
||||
Task<IEnumerable<InstanceRegistration>> GetAllAsync();
|
||||
Task DeleteAsync(string instanceId);
|
||||
}
|
||||
|
@ -40,10 +40,10 @@ public class RegisterInstanceDao<T> : IRegisterInstanceDao<T> where T : IHostedS
|
||||
_dbContextFactory = dbContextFactory;
|
||||
}
|
||||
|
||||
public async Task AddOrUpdate(InstanceRegistration obj)
|
||||
public async Task AddOrUpdateAsync(InstanceRegistration obj)
|
||||
{
|
||||
using var _instanceRegistrationContext = _dbContextFactory.CreateDbContext();
|
||||
var inst = _instanceRegistrationContext.InstanceRegistrations.Find(obj.InstanceRegistrationId);
|
||||
using var _instanceRegistrationContext = await _dbContextFactory.CreateDbContextAsync();
|
||||
var inst = await _instanceRegistrationContext.InstanceRegistrations.FindAsync(obj.InstanceRegistrationId);
|
||||
|
||||
if (inst == null)
|
||||
{
|
||||
@ -81,18 +81,18 @@ public class RegisterInstanceDao<T> : IRegisterInstanceDao<T> where T : IHostedS
|
||||
while (saveFailed);
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<InstanceRegistration>> GetAll()
|
||||
public async Task<IEnumerable<InstanceRegistration>> GetAllAsync()
|
||||
{
|
||||
using var _instanceRegistrationContext = _dbContextFactory.CreateDbContext();
|
||||
using var _instanceRegistrationContext = await _dbContextFactory.CreateDbContextAsync();
|
||||
return await _instanceRegistrationContext.InstanceRegistrations
|
||||
.Where(x => x.WorkerTypeName == typeof(T).GetFormattedName())
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task Delete(string instanceId)
|
||||
public async Task DeleteAsync(string instanceId)
|
||||
{
|
||||
using var _instanceRegistrationContext = _dbContextFactory.CreateDbContext();
|
||||
var item = _instanceRegistrationContext.InstanceRegistrations.Find(instanceId);
|
||||
using var _instanceRegistrationContext = await _dbContextFactory.CreateDbContextAsync();
|
||||
var item = await _instanceRegistrationContext.InstanceRegistrations.FindAsync(instanceId);
|
||||
|
||||
if (item == null)
|
||||
{
|
||||
|
@ -54,7 +54,7 @@ public class RegisterInstanceManager<T> : IRegisterInstanceManager<T> where T :
|
||||
{
|
||||
if (_isSingletoneMode) return;
|
||||
|
||||
var instances = await _registerInstanceRepository.GetAll();
|
||||
var instances = await _registerInstanceRepository.GetAllAsync();
|
||||
var registeredInstance = instances.FirstOrDefault(x => x.InstanceRegistrationId == instanceId);
|
||||
|
||||
var instance = registeredInstance ?? new InstanceRegistration
|
||||
@ -75,19 +75,19 @@ public class RegisterInstanceManager<T> : IRegisterInstanceManager<T> where T :
|
||||
}
|
||||
}
|
||||
|
||||
await _registerInstanceRepository.AddOrUpdate(instance);
|
||||
await _registerInstanceRepository.AddOrUpdateAsync(instance);
|
||||
}
|
||||
|
||||
public async Task UnRegister(string instanceId)
|
||||
{
|
||||
await _registerInstanceRepository.Delete(instanceId);
|
||||
await _registerInstanceRepository.DeleteAsync(instanceId);
|
||||
}
|
||||
|
||||
public async Task<bool> IsActive(string instanceId)
|
||||
{
|
||||
if (_isSingletoneMode) return await Task.FromResult(true);
|
||||
|
||||
var instances = await _registerInstanceRepository.GetAll();
|
||||
var instances = await _registerInstanceRepository.GetAllAsync();
|
||||
var instance = instances.FirstOrDefault(x => x.InstanceRegistrationId == instanceId);
|
||||
|
||||
return instance is not null && instance.IsActive;
|
||||
@ -97,12 +97,12 @@ public class RegisterInstanceManager<T> : IRegisterInstanceManager<T> where T :
|
||||
{
|
||||
if (_isSingletoneMode) return await Task.FromResult(new List<string>());
|
||||
|
||||
var instances = await _registerInstanceRepository.GetAll();
|
||||
var instances = await _registerInstanceRepository.GetAllAsync();
|
||||
var oldRegistrations = instances.Where(IsOrphanInstance).ToList();
|
||||
|
||||
foreach (var instanceRegistration in oldRegistrations)
|
||||
{
|
||||
await _registerInstanceRepository.Delete(instanceRegistration.InstanceRegistrationId);
|
||||
await _registerInstanceRepository.DeleteAsync(instanceRegistration.InstanceRegistrationId);
|
||||
}
|
||||
|
||||
return oldRegistrations.Select(x => x.InstanceRegistrationId).ToList();
|
||||
|
Loading…
Reference in New Issue
Block a user