lib/dynflow/dispatcher/client_dispatcher.rb in dynflow-0.8.30 vs lib/dynflow/dispatcher/client_dispatcher.rb in dynflow-0.8.31
- old
+ new
@@ -56,11 +56,11 @@
AnyExecutor
end),
(on ~Event do |event|
find_executor(event.execution_plan_id)
end),
- (on Ping.(~any) do |receiver_id|
+ (on Ping.(~any) | Status.(~any, ~any) do |receiver_id, _|
receiver_id
end)
envelope = Envelope[request_id, client_world_id, executor_id, request]
if Dispatcher::UnknownWorld === envelope.receiver_id
raise Dynflow::Error, "Could not find an executor for #{envelope}"
@@ -80,9 +80,12 @@
(on ~Failed do |msg|
resolve_tracked_request(envelope.request_id, Dynflow::Error.new(msg.error))
end),
(on Done | Pong do
resolve_tracked_request(envelope.request_id)
+ end),
+ (on ExecutionStatus.(~any) do |steps|
+ @tracked_requests.delete(envelope.request_id).success! steps
end)
end
private