public async Task PushTask() { var client = factory.CreateClient(); var contractSerializer = factory.Server.Host.Services.GetRequiredService <Remoting.IContractSerializer>(); var tasksClient = new WorkerServiceClient(client, contractSerializer); // Act var task = new TestTask(); var taskId = await tasksClient.PushTaskAsync(task); Assert.NotEqual(Guid.Empty, taskId); }
public async Task Subscribe() { var client = factory.CreateClient(); var contractSerializer = factory.Server.Host.Services.GetRequiredService <Remoting.IContractSerializer>(); var taskMetadataManager = factory.Server.Host.Services.GetRequiredService <Tasks.ITaskMetadataManager>(); var tasksClient = new WorkerServiceClient(client, contractSerializer); // Act var executorId = await tasksClient.SubscribeAsync(taskMetadataManager.Tasks.Select(it => it.TaskName).ToArray()); Assert.NotEqual(Guid.Empty, executorId); }
public async Task Wait_NoEmpty() { var client = factory.CreateClient(); var contractSerializer = factory.Server.Host.Services.GetRequiredService <Remoting.IContractSerializer>(); var taskMetadataManager = factory.Server.Host.Services.GetRequiredService <Tasks.ITaskMetadataManager>(); var tasksClient = new WorkerServiceClient(client, contractSerializer); // Act var taskId = await tasksClient.PushTaskAsync(new TestTask()); var executorId = await tasksClient.SubscribeAsync(taskMetadataManager.Tasks.Select(it => it.TaskName).ToArray()); var tasks = await tasksClient.WaitTasksAsync(executorId); Assert.NotEmpty(tasks); Assert.Contains(tasks, it => it.TaskId == taskId); }
public RemoteTaskAllocator(WorkerServiceClient workerClient, ITaskMetadataManager metadataManager, IServiceProvider serviceProvider, ILogger <RemoteTaskAllocator> logger) { this.workerClient = workerClient ?? throw new ArgumentNullException(nameof(workerClient)); this.serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); }