remove unnecessary typeRegistry

This commit is contained in:
2024-03-11 22:53:38 +07:00
parent ae1175cf51
commit 198452d357

View File

@@ -9,13 +9,11 @@ namespace InServiceQue.Services;
public class QueueService<T> : BackgroundService, IQueueService<T> public class QueueService<T> : BackgroundService, IQueueService<T>
where T: IQueueTask where T: IQueueTask
{ {
private readonly ITypeRegistry _typeRegistry;
private readonly ITaskRepository _repository; private readonly ITaskRepository _repository;
private readonly IServiceProvider _serviceProvider; private readonly IServiceProvider _serviceProvider;
public QueueService(ITypeRegistry typeRegistry, ITaskRepository repository, IServiceProvider serviceProvider) public QueueService(ITaskRepository repository, IServiceProvider serviceProvider)
{ {
_typeRegistry = typeRegistry;
_repository = repository; _repository = repository;
_serviceProvider = serviceProvider; _serviceProvider = serviceProvider;
} }
@@ -25,17 +23,15 @@ where T: IQueueTask
using (var scope = _serviceProvider.CreateScope()) using (var scope = _serviceProvider.CreateScope())
{ {
using var tx = _repository.StartTransaction(); using var tx = _repository.StartTransaction();
var queueTask = _repository.GetNextTask(tx); var queueTask = _repository.GetNextTask(tx, typeof(T).Name);
if (queueTask == null) if (queueTask == null)
{ {
_repository.RollbackTransaction(tx); _repository.RollbackTransaction(tx);
return; return;
} }
var taskType = queueTask.TaskType; var serviceHandler = scope.ServiceProvider.GetService(typeof(IQueueHandler<>).MakeGenericType(typeof(T)));
var ttype = typeof(T); var handler = (IQueueHandler)serviceHandler;
Debug.WriteLine($"TType: {ttype}, TaskType: {taskType}");
var handler = _typeRegistry.GetService(scope, taskType);
try try
{ {