Jump to: navigation, search

Difference between revisions of "TaskFlow/Sates of Task and Flow"

(Flow state diagram and sources added)
(Blanked the page)
 
Line 1: Line 1:
== Task States ==
 
[[File:Tf task state diagram.png|framed|left]]
 
When task just added to the flow, it is in '''PENDING''' state, which means it can be executed or waits for all of task it depends on to complete. Then, when task is executed, it transitions to '''RUNNING''' state, and stays in it until its <code>execute()</code> method returns. When task is finished, it transitions to '''SUCCESS''' state if it was finished successfully, or to '''FAILURE''' state if not.
 
  
When flow is reverted, all tasks in '''PENDING''' state are left as is; tasks from all the other states transition to '''REVERTING''' state, and their <code>revert()</code> method is called. When that method returns, task transitions to '''REVERTED''' state, and then to '''PENDING'''.
 
 
Transition from '''RUNNING''' to '''REVERTING''' state happens when task was interrupted while running, and then revert occurs. This may take place e.g. when daemon is killed while running the task.
 
 
Transition from '''REVERTED''' to '''PENDING''' state happens immediately. The main purpose of '''REVERTED''' state is notifications.
 
 
'''Discuss''': it may be worth to perform transition from '''REVERTED''' to '''PENDING''' automatically when resuming flow from storage.
 
 
== Flow States ==
 
[[File:Tf flow state diagram.png|framed|right]]
 
 
'''TODO(imelnikov)''' There are more flow states defined then present on the diagram: it does not include '''RESUMING''', '''CANCELED''', '''INCOMPLETE'''. Still need to figure out their precise semantics.
 
 
== Appendix A: Drawing Diagrams ==
 
 
The diagrams were drawn using [[http://plantuml.sourceforge.net/ PlantUML]]. You can re-create them offline or online [[http://www.plantuml.com/plantuml/form here]].
 
 
Source for task state diagram:
 
  [*] --> PENDING
 
  PENDING --> RUNNING
 
  RUNNING --> SUCCESS
 
  RUNNING --> FAILURE
 
  RUNNING --> REVERTING
 
  SUCCESS --> REVERTING
 
  FAILURE --> REVERTING
 
  REVERTING -up-> REVERTED
 
  REVERTING -up-> FAILURE
 
  REVERTED -up-> PENDING
 
 
Source for flow state diagram:
 
  [*] --> PENDING
 
  PENDING --> RUNNING
 
  RUNNING --> SUCCESS
 
  RUNNING --> REVERTING : failure
 
  RUNNING --> INTERRUPTED
 
  REVERTING --> INTERRUPTED
 
  INTERRUPTED -l-> RUNNING
 
  INTERRUPTED --> REVERTING
 
  REVERTING --> REVERTED
 
  REVERTED --> FAILUR
 

Latest revision as of 17:10, 10 September 2013