Class: Tengine::Job::Junction
- Inherits:
-
Vertex
- Object
- Vertex
- Tengine::Job::Junction
- Defined in:
- lib/tengine/job/junction.rb
Overview
ForkやJoinの継承元となるVertex。特に状態は持たない。
Instance Method Summary collapse
- #activatable? ⇒ Boolean
- #activate(signal) ⇒ Object
- #reset(signal) ⇒ Object
- #transmit(signal) ⇒ Object
Instance Method Details
#activatable? ⇒ Boolean
17 18 19 |
# File 'lib/tengine/job/junction.rb', line 17 def activatable? prev_edges.all?(&:transmitted?) end |
#activate(signal) ⇒ Object
21 22 23 |
# File 'lib/tengine/job/junction.rb', line 21 def activate(signal) signal.leave(self) end |
#reset(signal) ⇒ Object
25 26 27 |
# File 'lib/tengine/job/junction.rb', line 25 def reset(signal) signal.leave(self, :reset) end |
#transmit(signal) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/tengine/job/junction.rb', line 8 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? activate(signal) unless prev_edges.any?(&predicate) end |