Created
          May 14, 2022 17:32 
        
      - 
      
- 
        Save odigity/fb109a738f74c8174cbba4e2977dc63d to your computer and use it in GitHub Desktop. 
    Celery Workflows
  
        
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | ─────────────────────────────────────────────────────────────────────────── | |
| • First Task Enqueuing Second Task | |
| (T) | |
| └────> (T) | |
| --------------------------------------------------------------------------- | |
| pr = p.delay() -> <AsyncResult: fe7c16b9> | |
| pr.children -> [ <AsyncResult: 9cebcbbc> ] | |
| pr.children[0].parent -> None | |
| --------------------------------------------------------------------------- | |
| Task p[fe7c16b9] | |
| root_id = fe7c16b9 | |
| children = [] ...then... [ <AsyncResult: 9cebcbbc> ] | |
| --------------------------------------------------------------------------- | |
| Task c[9cebcbbc] | |
| root_id = fe7c16b9 | |
| parent_id = fe7c16b9 | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • First Task Enqueuing Multiple Tasks | |
| (T) | |
| ├────> (T) | |
| └────> (T) | |
| --------------------------------------------------------------------------- | |
| pr = p.delay() -> <AsyncResult: 2585d485> | |
| pr.children -> [ <AsyncResult: e41a3761>, <AsyncResult: ded98925> ] | |
| pr.children[0].parent -> None | |
| --------------------------------------------------------------------------- | |
| Task p[2585d485] | |
| root_id = 2585d485 | |
| children = [] ...then... [ <AsyncResult: e41a3761>, <AsyncResult: ded98925> ] | |
| --------------------------------------------------------------------------- | |
| Task c[e41a3761] | |
| root_id = 2585d485 | |
| parent_id = 2585d485 | |
| --------------------------------------------------------------------------- | |
| Task c[ded98925] | |
| root_id = 2585d485 | |
| parent_id = 2585d485 | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • First Task Enqueuing Second Task Enqueuing Third Task | |
| (T) | |
| └────> (T) | |
| └────> (T) | |
| --------------------------------------------------------------------------- | |
| gr = g.delay() -> <AsyncResult: ae6f06e3> | |
| gr.children -> [ <AsyncResult: cb25b5c6> ] | |
| gr.children[0].children -> [ <AsyncResult: 0f95dd74> ] | |
| --------------------------------------------------------------------------- | |
| Task g[ae6f06e3] | |
| root_id = ae6f06e3 | |
| children = [] ...then... [ <AsyncResult: cb25b5c6> ] | |
| --------------------------------------------------------------------------- | |
| Task p[cb25b5c6] | |
| root_id = ae6f06e3 | |
| parent_id = ae6f06e3 | |
| children = [] ...then... [ <AsyncResult: 0f95dd74> ] | |
| --------------------------------------------------------------------------- | |
| Task c[0f95dd74] | |
| root_id = ae6f06e3 | |
| parent_id = cb25b5c6 | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • Task w/ Callback | |
| (T) --> (T) | |
| --------------------------------------------------------------------------- | |
| t1r = add.apply_async( [2, 3], link=mul.s(7) ) -> <AsyncResult: 1620c5ff> | |
| t1r.children -> [ <AsyncResult: 5cbfc4f0> ] | |
| t1r.children[0].parent -> None | |
| --------------------------------------------------------------------------- | |
| Task add[1620c5ff] | |
| root_id = 1620c5ff | |
| callbacks = [ | |
| { 'task': 'mul', 'args': [7] } | |
| ] | |
| children = [] ...then... [ <AsyncResult: 5cbfc4f0> ] | |
| --------------------------------------------------------------------------- | |
| Task mul[5cbfc4f0] | |
| root_id = 1620c5ff | |
| parent_id = 1620c5ff | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • Task w/ 2 Callbacks | |
| (T) --> │T│ | |
| │T│ | |
| --------------------------------------------------------------------------- | |
| t1r = add.apply_async( [2, 3], link=[ mul.s(5), mul.s(6) ] ) | |
| -or- | |
| t1 = add.s(2, 3) ; t1.link(mul.s(5)) ; t1.link(mul.s(6)) ; t1r = t1.delay() | |
| -> <AsyncResult: d78b1639> | |
| t1r.children -> [ <GroupResult: d91c9bf8 [e0068e43, 9a0189bf]> ] | |
| t1r.children[0].parent -> None | |
| t1r.children[0].children -> [ <AsyncResult: e0068e43>, <AsyncResult: 9a0189bf> ] | |
| --------------------------------------------------------------------------- | |
| Task add[d78b1639] | |
| root_id = d78b1639 | |
| callbacks = [ | |
| { 'task': 'mul', 'args': [5] } | |
| { 'task': 'mul', 'args': [6] } | |
| ] | |
| children = [] ...then... [ <GroupResult: d91c9bf8 [e0068e43, 9a0189bf]> ] | |
| --------------------------------------------------------------------------- | |
| Task mul[e0068e43] | |
| root_id = d78b1639 | |
| parent_id = d78b1639 | |
| group = d91c9bf8 | |
| --------------------------------------------------------------------------- | |
| Task mul[9a0189bf] | |
| root_id = d78b1639 | |
| parent_id = d78b1639 | |
| group = d91c9bf8 | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • Task w/ Callback Group of 2 Tasks | |
| (T) --> │T│ | |
| │T│ | |
| --------------------------------------------------------------------------- | |
| t1r = _pass_thru.apply_async( [42], link=group( add.s(7), add.s(9) ) ) | |
| -> <AsyncResult: a30ea0fe> | |
| t1r.children -> [ <GroupResult: 3f70f38c [1f1f7311, 0144369a]> ] | |
| t1r.children[0].parent -> None | |
| --------------------------------------------------------------------------- | |
| Task _pass_thru[a30ea0fe] | |
| root_id = a30ea0fe | |
| callbacks = [ | |
| { | |
| 'task': 'celery.group', | |
| 'kwargs': { | |
| 'tasks': [ | |
| { 'task': 'add', 'args': [7] }, | |
| { 'task': 'add', 'args': [9] } | |
| ] | |
| }, | |
| 'subtask_type': 'group' | |
| } | |
| ] | |
| children = [] ...then... [ <GroupResult: 3f70f38c [1f1f7311, 0144369a]> ] | |
| --------------------------------------------------------------------------- | |
| Task add[1f1f7311] | |
| root_id = a30ea0fe | |
| parent_id = a30ea0fe | |
| group = 3f70f38c | |
| --------------------------------------------------------------------------- | |
| Task add[0144369a] | |
| root_id = a30ea0fe | |
| parent_id = a30ea0fe | |
| group = 3f70f38c | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • 3 Linked Tasks | |
| (T) --> (T) --> (T) | |
| --------------------------------------------------------------------------- | |
| t1r = add.apply_async( [2, 3], link=mul.signature( [7], link=add.s(8) ) ) | |
| -> <AsyncResult: 0f4950b2> | |
| t1r.children -> [ <AsyncResult: 0af053da> ] | |
| t1r.children[0].parent -> None | |
| t1r.children[0].children -> [ <AsyncResult: bbe4bbc8> ] | |
| --------------------------------------------------------------------------- | |
| Task add[0f4950b2] | |
| root_id = 0f4950b2 | |
| callbacks = [ | |
| { 'task': 'mul', 'args': [7] 'options': { 'link': [ | |
| { 'task': 'add', 'args': [8] } | |
| ] } } | |
| ] | |
| children = [] ...then... [ <AsyncResult: 0af053da> ] | |
| --------------------------------------------------------------------------- | |
| Task mul[0af053da] | |
| root_id = 0f4950b2 | |
| parent_id = 0f4950b2 | |
| callbacks = [ | |
| { 'task': 'add', 'args': [8] } | |
| ] | |
| children = [] ...then... [ <AsyncResult: bbe4bbc8> ] | |
| --------------------------------------------------------------------------- | |
| Task add[bbe4bbc8] | |
| root_id = 0f4950b2 | |
| parent_id = 0af053da | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • Chain w/ 3 Tasks | |
| (T) ∞∞> (T) ∞∞> (T) | |
| --------------------------------------------------------------------------- | |
| t3r = chain( add.s(2, 3), mul.s(7), add.s(8) ).delay() | |
| -or- | |
| t3r = ( add.s(2, 3) | mul.s(7) | add.s(8) ).delay() | |
| -> <AsyncResult: d5d1a636> | |
| t3r.parent -> <AsyncResult: 2b22c45e> | |
| t3r.parent.children -> [ <AsyncResult: d5d1a636> ] | |
| t3r.parent.parent -> <AsyncResult: dbb1b46b> | |
| --------------------------------------------------------------------------- | |
| Task add[dbb1b46b] | |
| root_id = dbb1b46b | |
| chain = [ | |
| { 'task': 'add', 'args': [8], 'options': { 'task_id': 'd5d1a636' } } | |
| { 'task': 'mul', 'args': [7], 'options': { 'task_id': '2b22c45e' } } | |
| ] | |
| children = [] ...then... [ <AsyncResult: 2b22c45e> ] | |
| --------------------------------------------------------------------------- | |
| Task mul[2b22c45e] | |
| root_id = dbb1b46b | |
| parent_id = dbb1b46b | |
| chain = [ | |
| { 'task': 'add', 'args': [8] 'options': { 'task_id': 'd5d1a636' } } | |
| ] | |
| children = [] ...then... [ <AsyncResult: d5d1a636> ] | |
| --------------------------------------------------------------------------- | |
| Task add[d5d1a636] | |
| root_id = dbb1b46b | |
| parent_id = 2b22c45e | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • Chain w/ 3 Tasks w/ Callback | |
| (T) ∞∞> (T) ∞∞> (T) --> (T) | |
| --------------------------------------------------------------------------- | |
| t3r = chain( add.s(2, 3), mul.s(7), add.s(8) ).apply_async(link=_args.s()) | |
| -> <AsyncResult: 0dd34cc5> | |
| t3r.parent -> <AsyncResult: 7f6663db> | |
| t3r.children -> [ <AsyncResult: d9043c87> ] | |
| --------------------------------------------------------------------------- | |
| Task add[00f00e5c] | |
| root_id = 00f00e5c | |
| chain = [ | |
| { 'task': 'add', 'args': [8], 'options': { 'task_id': '0dd34cc5', 'link': [ | |
| { 'task': '_args' } | |
| ] } }, | |
| { 'task': 'mul', 'args': [7], 'options': { 'task_id': '7f6663db' } } | |
| ] | |
| children = [] ...then... [ <AsyncResult: 7f6663db> ] | |
| --------------------------------------------------------------------------- | |
| Task mul[7f6663db] | |
| root_id = 00f00e5c | |
| parent_id = 00f00e5c | |
| chain = [ | |
| { 'task': 'add', 'args': [8], 'options': { 'task_id': '0dd34cc5', 'link': [ | |
| { 'task': '_args' } | |
| ] } } | |
| ] | |
| children = [] ...then... [ <AsyncResult: 0dd34cc5> ] | |
| --------------------------------------------------------------------------- | |
| Task add[0dd34cc5] | |
| root_id = 00f00e5c | |
| parent_id = 7f6663db | |
| callbacks = [ | |
| { 'task': '_args' } | |
| ] | |
| children = [] ...then... [ <AsyncResult: d9043c87> ] | |
| --------------------------------------------------------------------------- | |
| Task _args[d9043c87] | |
| root_id = 00f00e5c | |
| parent_id = 0dd34cc5 | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • Group of Tasks | |
| |T| | |
| |T| | |
| |T| | |
| --------------------------------------------------------------------------- | |
| gr = group( add.s(2, i) for i in range(3) ).delay() | |
| -> <GroupResult: 09cbbe2b [69c915cc, fdc62a68, 86fcf847]> | |
| gr.children -> [ <AsyncResult: 69c915cc>, <AsyncResult: fdc62a68>, <AsyncResult: 86fcf847> ] | |
| gr.children[0].parent -> None | |
| --------------------------------------------------------------------------- | |
| Task add[18f57656] | |
| root_id = 18f57656 | |
| group = 09cbbe2b | |
| --------------------------------------------------------------------------- | |
| Task add[e733d1b4] | |
| root_id = e733d1b4 | |
| group = 09cbbe2b | |
| --------------------------------------------------------------------------- | |
| Task add[b5cb5826] | |
| root_id = b5cb5826 | |
| group = 09cbbe2b | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── ** AVOID ** | |
| • Group of Tasks w/ Callback | |
| |T| --> (T) | |
| |T| | |
| --------------------------------------------------------------------------- | |
| g = group( add.s(1, 2), add.s(3, 4) ) ; g.link( _args.s() ) ; gr = g.delay() | |
| -> <GroupResult: b8359c95 [d66bc694, 1dc647c1]> | |
| gr.children -> [ <AsyncResult: d66bc694>, <AsyncResult: 1dc647c1> ] | |
| gr.children[0].children -> [ <AsyncResult: 8171b5ea> ] | |
| --------------------------------------------------------------------------- | |
| Task add[d66bc694] | |
| root_id = d66bc694 | |
| callbacks = [ | |
| { 'task': '_args', 'immutable': True } | |
| ] | |
| group = b8359c95 | |
| children = [] ...then... [ <AsyncResult: 8171b5ea> ] | |
| --------------------------------------------------------------------------- | |
| Task add[1dc647c1] | |
| root_id = 1dc647c1 | |
| group = b8359c95 | |
| --------------------------------------------------------------------------- | |
| Task _args[8171b5ea] | |
| root_id = d66bc694 | |
| parent_id = d66bc694 | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • Chord | |
| |T| ┬─> (T) | |
| |T| ┘ | |
| --------------------------------------------------------------------------- | |
| t3r = chord( group( _pass_thru.s(2), _sleep.s(10) ), _args.s() ).delay() | |
| -or- | |
| t3r = ( group( _pass_thru.s(2), _sleep.s(10) ) | _args.s() ).delay() | |
| -> <AsyncResult: e2ef6ca9> | |
| t3r.parent -> <GroupResult: 3d9f0733 [55d56c9b, 16553193]> | |
| t3r.parent.children -> [ <AsyncResult: 55d56c9b>, <AsyncResult: 16553193> ] | |
| t3r.parent.children[1].children -> [] | |
| --------------------------------------------------------------------------- ChordCounter | |
| group_id : 3d9f0733 | |
| sub_tasks : [ [["55d56c9b", null], null], [["16553193", null], null] ] | |
| --------------------------------------------------------------------------- | |
| Task _pass_thru[55d56c9b] | |
| root_id = 55d56c9b | |
| group = 3d9f0733 | |
| chord = { 'task': '_args', 'options': { 'task_id': 'e2ef6ca9' } } | |
| --------------------------------------------------------------------------- | |
| Task _sleep[16553193] received | |
| root_id = 16553193 | |
| group = 3d9f0733 | |
| chord = { 'task': '_args', 'options': { 'task_id': 'e2ef6ca9' } | |
| children = [] ...then... [ <AsyncResult: e2ef6ca9> ] | |
| --------------------------------------------------------------------------- | |
| Task _args[e2ef6ca9] | |
| root_id = 16553193 | |
| parent_id = 16553193 | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • Chord w/ Callback | |
| |T| ┬─> (T) --> (T) | |
| |T| ┘ | |
| --------------------------------------------------------------------------- | |
| t3 = ( group( _pass_thru.s(2), _sleep.s(10) ) | _args.s() ) | |
| t3.link(_pass_thru.s()) | |
| t3r = t3.delay() -> <AsyncResult: 9addbf63> | |
| t3r.parent -> <GroupResult: a9582b6b [94df9a4c, fcbb0445]> | |
| t3r.children -> [ <AsyncResult: 60b2cf22> ] | |
| --------------------------------------------------------------------------- ChordCounter | |
| group_id : a9582b6b | |
| sub_tasks : [ [["94df9a4c", null], null], [["fcbb0445", null], null] ] | |
| --------------------------------------------------------------------------- | |
| Task _pass_thru[94df9a4c] | |
| root_id = 94df9a4c | |
| group = a9582b6b | |
| chord = { | |
| 'task': '_args', 'options': { 'task_id': '9addbf63', 'link': [ | |
| { 'task': '_pass_thru' } | |
| ] } | |
| } | |
| --------------------------------------------------------------------------- | |
| Task _sleep[fcbb0445] | |
| root_id = fcbb0445 | |
| group = a9582b6b | |
| chord = { | |
| 'task': '_args', 'options': { 'task_id': '9addbf63', 'link': [ | |
| { 'task': '_pass_thru' } | |
| ] } | |
| } | |
| children = [] ...then... [ <AsyncResult: 9addbf63> ] | |
| --------------------------------------------------------------------------- | |
| Task _args[9addbf63] | |
| root_id = fcbb0445 | |
| parent_id = fcbb0445 | |
| callbacks = [ | |
| { 'task': '_pass_thru' } | |
| ] | |
| children = [] ...then... [ <AsyncResult: 60b2cf22> ] | |
| --------------------------------------------------------------------------- | |
| Task _pass_thru[60b2cf22] | |
| root_id = fcbb0445 | |
| parent_id = 9addbf63 | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • Chain of Task-Group-Task aka Task-Chord | |
| (T) ∞∞> |T| ∞∞> (T) -> (T) ∞∞> |T| ┬─> (T) | |
| |T| |T| ┘ | |
| --------------------------------------------------------------------------- | |
| cr = chain( | |
| _pass_thru.s(2), | |
| group( mul.s(3), mul.s(4) ), | |
| total.s() | |
| ).delay() -> <AsyncResult: 8fc69032> | |
| cr.parent -> <GroupResult: bd6d0d73 [e9a3165f, 14786142]> | |
| cr.parent.parent -> <AsyncResult: f0ef9429> | |
| cr.parent.children[0].children -> [] | |
| --------------------------------------------------------------------------- | |
| Task _pass_thru[f0ef9429] | |
| root_id = f0ef9429 | |
| chain = [ | |
| { | |
| 'task': 'celery.chord', | |
| 'kwargs': { | |
| 'header': { | |
| 'task': 'celery.group', | |
| 'kwargs': { | |
| 'tasks': [ | |
| { | |
| 'task': 'mul', 'args': [3], 'options': { | |
| 'task_id': 'e9a3165f', | |
| 'chord': { 'task': 'total', 'options': { 'task_id': '8fc69032' } }, | |
| 'group_index': 0 | |
| } | |
| }, | |
| { | |
| 'task': 'mul', 'args': [4], 'options': { | |
| 'task_id': '14786142', | |
| 'chord': { 'task': 'total', 'options': { 'task_id': '8fc69032' } }, | |
| 'group_index': 1 | |
| } | |
| } | |
| ] | |
| }, | |
| 'options': { | |
| 'task_id': 'bd6d0d73', | |
| 'chord': { 'task': 'total', 'options': { 'task_id': '8fc69032' } } | |
| }, | |
| 'subtask_type': 'group' | |
| }, | |
| 'body': { 'task': 'total', 'options': { 'task_id': '8fc69032' } } | |
| }, | |
| 'options': { 'task_id': 'bd6d0d73' }, | |
| 'subtask_type': 'chord' | |
| } | |
| ] | |
| children = [] ...then... [ <GroupResult: 22253781 [e9a3165f, 14786142]> ] | |
| --------------------------------------------------------------------------- | |
| Task mul[e9a3165f] | |
| root_id = f0ef9429 | |
| parent_id = f0ef9429 | |
| group = 22253781 | |
| chord = { 'task': 'total', 'options': { 'task_id': '8fc69032', 'parent_id': 'f0ef9429', 'root_id': 'f0ef9429' } } | |
| children = [] ...then... [ <AsyncResult: 8fc69032> ] | |
| --------------------------------------------------------------------------- | |
| Task mul[14786142] | |
| root_id = f0ef9429 | |
| parent_id = f0ef9429 | |
| group = 22253781 | |
| chord = { 'task': 'total', 'options': { 'task_id': '8fc69032', 'parent_id': 'f0ef9429', 'root_id': 'f0ef9429' } } | |
| --------------------------------------------------------------------------- | |
| Task total[8fc69032] | |
| root_id = f0ef9429 | |
| parent_id = f0ef9429 | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • Chain of Group-Task-Group | |
| |T| ∞∞> (T) ∞∞> |T| -> |T| ┬─> (T) ∞∞> |T| | |
| |T| |T| |T| ┘ |T| | |
| --------------------------------------------------------------------------- | |
| cr = chain( | |
| group( _pass_thru.s(1), _pass_thru.s(2) ), | |
| total.s(), | |
| group( mul.s(3), mul.s(4) ) | |
| ).delay() | |
| -> <GroupResult: 1e8a3e44 [322bc6c1, 791b1d56]> | |
| cr.parent -> <AsyncResult: 5366afdc> | |
| cr.parent.children -> [ <GroupResult: 1e8a3e44 [322bc6c1, 791b1d56]> ] | |
| cr.parent.parent -> <GroupResult: 1abc73d7 [33e0989c, 4db7774a]> | |
| --------------------------------------------------------------------------- | |
| Task _pass_thru[33e0989c] | |
| root_id = 33e0989c | |
| group = 1abc73d7 | |
| chord = { | |
| 'task': 'total', | |
| 'options': { | |
| 'task_id': '5366afdc', | |
| 'chain': [ | |
| { | |
| 'task': 'celery.group', | |
| 'kwargs': { | |
| 'tasks': [ | |
| { 'task': 'mul', 'args': [3], 'options': { 'task_id': '322bc6c1', 'group_index': 0 } }, | |
| { 'task': 'mul', 'args': [4], 'options': { 'task_id': '791b1d56', 'group_index': 1 } } | |
| ] | |
| }, | |
| 'options': { 'task_id': '1e8a3e44' }, | |
| 'subtask_type': 'group' | |
| } | |
| ] | |
| } | |
| } | |
| children = [] ...then... [ <AsyncResult: 5366afdc> ] | |
| --------------------------------------------------------------------------- | |
| Task _pass_thru[4db7774a] | |
| root_id = 4db7774a | |
| group = 1abc73d7 | |
| chord = { | |
| 'task': 'total', | |
| 'options': { | |
| 'task_id': '5366afdc', | |
| 'chain': [ | |
| { | |
| 'task': 'celery.group', | |
| 'kwargs': { | |
| 'tasks': [ | |
| { 'task': 'mul', 'args': [3], 'options': { 'task_id': '322bc6c1', 'group_index': 0 } }, | |
| { 'task': 'mul', 'args': [4], 'options': { 'task_id': '791b1d56', 'group_index': 1 } } | |
| ] | |
| }, | |
| 'options': { 'task_id': '1e8a3e44' }, | |
| 'subtask_type': 'group' | |
| } | |
| ] | |
| } | |
| } | |
| --------------------------------------------------------------------------- | |
| Task total[5366afdc] | |
| root_id = 33e0989c | |
| parent_id = 33e0989c | |
| chain = [ | |
| { | |
| 'task': 'celery.group', | |
| 'kwargs': { | |
| 'tasks': [ | |
| { 'task': 'mul', 'args': [3], 'options': { 'task_id': '322bc6c1', 'group_index': 0 } }, | |
| { 'task': 'mul', 'args': [4], 'options': { 'task_id': '791b1d56', 'group_index': 1 } } | |
| ] | |
| }, | |
| 'options': { 'task_id': '1e8a3e44' }, | |
| 'subtask_type': 'group' | |
| } | |
| ] | |
| children = [] ...then... [ <GroupResult: 1e8a3e44 [322bc6c1, 791b1d56]> ] | |
| --------------------------------------------------------------------------- | |
| Task mul[322bc6c1] | |
| root_id = 33e0989c | |
| parent_id = 5366afdc | |
| group = 1e8a3e44 | |
| --------------------------------------------------------------------------- | |
| Task mul[791b1d56] | |
| root_id = 33e0989c | |
| parent_id = 5366afdc | |
| group = 1e8a3e44 | |
| --------------------------------------------------------------------------- | |
| ─────────────────────────────────────────────────────────────────────────── | |
| • Group w/ a Chain | |
| |T | | |
| |T ∞∞> T| | |
| --------------------------------------------------------------------------- | |
| gr = group( _pass_thru.s(), chain( add.s(5), mul.s(5) ) ).delay(7) | |
| -> <GroupResult: 5982fa5b [40cedd78, f0f8f9e5]> | |
| gr.children[1].parent -> <AsyncResult: 9cc0ddfc> | |
| --------------------------------------------------------------------------- | |
| Task _pass_thru[40cedd78] | |
| root_id = 40cedd78 | |
| group = 5982fa5b | |
| --------------------------------------------------------------------------- | |
| Task add[9cc0ddfc] | |
| root_id = 9cc0ddfc | |
| chain = [ | |
| { 'task': 'mul', 'args': [5], 'options': { 'task_id': 'f0f8f9e5', 'group_id': '5982fa5b' } } | |
| ] | |
| children = [] ...then... [ <AsyncResult: f0f8f9e5> ] | |
| --------------------------------------------------------------------------- | |
| Task mul[f0f8f9e5] | |
| root_id = 9cc0ddfc | |
| parent_id = 9cc0ddfc | |
| group = 5982fa5b | |
| --------------------------------------------------------------------------- | |
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment