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);
        }
示例#4
0
 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));
 }