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