public TaskExecutor(ITaskAllocator taskAllocator, ITaskHandlerLocator handlerLocator, ITaskMetadataManager metadataManager, IServiceProvider serviceProvider, ILogger <TaskExecutor> logger) { this.taskAllocator = taskAllocator ?? throw new ArgumentNullException(nameof(taskAllocator)); this.serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); foreach (var taskType in handlerLocator.TaskTypes) { var taskMetadata = metadataManager.FindTaskMetadata(taskType); if (taskMetadata == null) { throw new InvalidOperationException(); } handlerFactories.Add(taskType, new TaskHandlerMetadata(taskMetadata.TaskName, HandlerBaseType.MakeGenericType(taskType))); } }
public ITaskRepositoryTests() { host = new HostBuilder() .ConfigureServices((hostContext, services) => { services .AddWorkerAllocator(options => { options.TimeoutWaitingTasksPerExecutor = TimeSpan.FromSeconds(2); }) .AddTaskRepository <MemoryTaskRepository>() .AddTaskType(typeof(TestTask)); services.AddSingleton <TaskAllocator>(); }) .Build(); metadataManager = host.Services.GetRequiredService <ITaskMetadataManager>(); allocator = host.Services.GetRequiredService <ITaskAllocator>(); taskRepository = (MemoryTaskRepository)host.Services.GetRequiredService <ITaskRepository>(); }
public TaskAllocatorHostService(ITaskAllocator taskAllocator) { this.taskAllocator = taskAllocator ?? throw new ArgumentNullException(nameof(taskAllocator)); }