public Task <TaskHealthResponse> Handle(TaskHealthRequest request) { Debug.WriteLine("Received message {0} from {1}", request, _envelope.ReplyUri); return(_controller.CheckStatusOfOwnedTasks().ContinueWith(t => { if (t.IsFaulted) { return TaskHealthResponse.ErrorFor(request.Subjects); } var response = t.Result; response.AddMissingSubjects(request.Subjects); Debug.WriteLine("Responding with {0} on node {1} from health request from {2}", response, _graph.NodeId, _envelope.ReplyUri); return response; })); }
public Task<TaskHealthResponse> Handle(TaskHealthRequest request) { Debug.WriteLine("Received message {0} from {1}", request, _envelope.ReplyUri); return _controller.CheckStatusOfOwnedTasks().ContinueWith(t => { if (t.IsFaulted) { return TaskHealthResponse.ErrorFor(request.Subjects); } var response = t.Result; response.AddMissingSubjects(request.Subjects); Debug.WriteLine("Responding with {0} on node {1} from health request from {2}", response, _graph.NodeId, _envelope.ReplyUri); return response; }); }
public async Task<TaskHealthResponse> Handle(TaskHealthRequest request) { Debug.WriteLine($"Received message {request} from {_envelope.ReplyUri}"); try { var response = await _controller.CheckStatusOfOwnedTasks().ConfigureAwait(false); response.AddMissingSubjects(request.Subjects); Debug.WriteLine($"Responding from node {_graph.NodeId} with {response} from health request from {_envelope.ReplyUri}"); return response; } catch (Exception) { return TaskHealthResponse.ErrorFor(request.Subjects); } }
public async Task <TaskHealthResponse> Handle(TaskHealthRequest request) { Debug.WriteLine($"Received message {request} from {_envelope.ReplyUri}"); try { var response = await _controller.CheckStatusOfOwnedTasks().ConfigureAwait(false); response.AddMissingSubjects(request.Subjects); Debug.WriteLine($"Responding from node {_graph.NodeId} with {response} from health request from {_envelope.ReplyUri}"); return(response); } catch (Exception e) { return(TaskHealthResponse.ErrorFor(request.Subjects)); } }
public Task<TaskHealthResponse> CheckStatusOfOwnedTasks() { var subjects = CurrentlyOwnedSubjects().ToArray(); if (!subjects.Any()) { return Task.FromResult(TaskHealthResponse.Empty()); } var request = new TaskHealthRequest { Subjects = subjects }; return _serviceBus.Request<TaskHealthResponse>(request, new RequestOptions { Destination = ControlChannel, Timeout = _settings.HealthCheckMessageTimeout }).ContinueWith(t => { if (t.IsFaulted) { _logger.Error(NodeId, "Could not retrieve persistent status checks", t.Exception); t.Exception.Handle(e => true); return TaskHealthResponse.ErrorFor(subjects); } if (t.IsCompleted) { var response = t.Result; response.AddMissingSubjects(subjects); return response; } _logger.Info(() => "Persistent task health status timedout for node " + NodeId); return TaskHealthResponse.ErrorFor(subjects); }); }
public async Task <TaskHealthResponse> CheckStatusOfOwnedTasks() { var subjects = CurrentlyOwnedSubjects().ToArray(); if (!subjects.Any()) { return(TaskHealthResponse.Empty()); } var request = new TaskHealthRequest { Subjects = subjects }; try { var response = await _serviceBus.Request <TaskHealthResponse>(request, new RequestOptions { Destination = ControlChannel, Timeout = _settings.HealthCheckMessageTimeout }).ConfigureAwait(false); if (response == null) { _logger.Info(() => "Persistent task health status timedout for node " + NodeId); return(TaskHealthResponse.ErrorFor(subjects)); } response.AddMissingSubjects(subjects); return(response); } catch (Exception e) { _logger.Error(NodeId, "Could not retrieve persistent status checks", e); return(TaskHealthResponse.ErrorFor(subjects)); } }
public async Task<TaskHealthResponse> CheckStatusOfOwnedTasks() { var subjects = CurrentlyOwnedSubjects().ToArray(); if (!subjects.Any()) { return TaskHealthResponse.Empty(); } var request = new TaskHealthRequest { Subjects = subjects }; try { var response = await _serviceBus.Request<TaskHealthResponse>(request, new RequestOptions { Destination = ControlChannel, Timeout = _settings.HealthCheckMessageTimeout }).ConfigureAwait(false); if (response == null) { _logger.Info(() => "Persistent task health status timedout for node " + NodeId); return TaskHealthResponse.ErrorFor(subjects); } response.AddMissingSubjects(subjects); return response; } catch (Exception e) { _logger.Error(NodeId, "Could not retrieve persistent status checks", e); return TaskHealthResponse.ErrorFor(subjects); } }
public Task <TaskHealthResponse> CheckStatusOfOwnedTasks() { var subjects = CurrentlyOwnedSubjects().ToArray(); if (!subjects.Any()) { return(Task.FromResult(TaskHealthResponse.Empty())); } var request = new TaskHealthRequest { Subjects = subjects }; return(_serviceBus.Request <TaskHealthResponse>(request, new RequestOptions { Destination = ControlChannel, Timeout = _settings.HealthCheckMessageTimeout }).ContinueWith(t => { if (t.IsFaulted) { _logger.Error(NodeId, "Could not retrieve persistent status checks", t.Exception); t.Exception.Handle(e => true); return TaskHealthResponse.ErrorFor(subjects); } if (t.IsCompleted) { var response = t.Result; response.AddMissingSubjects(subjects); return response; } _logger.Info(() => "Persistent task health status timedout for node " + NodeId); return TaskHealthResponse.ErrorFor(subjects); })); }
protected bool Equals(TaskHealthRequest other) { return Subjects.SequenceEqual(other.Subjects); }
protected bool Equals(TaskHealthRequest other) { return(Subjects.SequenceEqual(other.Subjects)); }