class Tengine::Job::Runtime::Junction
ForkやJoinの継承元となるVertex。特に状態は持たない。
Public Instance Methods
activatable?()
click to toggle source
# File lib/tengine/job/runtime/junction.rb, line 18 def activatable? prev_edges.all?(&:transmitted?) end
activate(signal)
click to toggle source
# File lib/tengine/job/runtime/junction.rb, line 22 def activate(signal) Tengine.logger.debug "a" * 100 Tengine.logger.debug "#{__FILE__}##{__LINE__}" Tengine.logger.debug "#{object_id} #{inspect}" Tengine.logger.debug "#{signal.cache(parent).object_id} #{signal.cache(parent).inspect}" signal.leave(self) end
reset(signal)
click to toggle source
# File lib/tengine/job/runtime/junction.rb, line 30 def reset(signal) signal.leave(self, :reset) end
transmit(signal)
click to toggle source
cacoo.com/diagrams/hdLgrzYsTBBpV3Wj#D26C1
# File lib/tengine/job/runtime/junction.rb, line 7 def transmit(signal) complete_origin_edge(signal, :except_closed => true) # transmitted?で判断すると、closedなものに対する処理を考慮できないので、alive?を使って判断します # activate(signal) if prev_edges.all?(&:transmitted?) execution = signal.execution predicate = execution.retry ? :alive_or_closing_or_closed? : :alive_or_closing? unless signal.cache(prev_edges).any?(&predicate) activate(signal) end end