def test_grouping(): result = group(add.s(i, i) for i in range(10, 20))().get() print(result) result = chain(add.s(2, 2) | mul.s((4)))().get() print(result) result = chord((mul.s(i, i) for i in range(10)), xsum.s())().get() print(result) result = (group(mul.s(i, i) for i in range(10)) | xsum.s())().get() print(result)
def test_group_results(): job = group([ add.s(2, 4), mul.s(4, 9), xsum.s([2, 3, 5]), ]) result = job.apply_async() print(result.ready()) print(result.successful()) print(result.join()) print(result.get())
from tasks import add, mul, build_insight from celery import chain res = (add.s(4, 4) | mul.s(4)).apply_async() # build_insight.delay()
# raise exception still can run # res = ( # group( # (add.s(4, 4) | mul.s(2)), # 16 # (add.s(5, 4) | mul.s(3)), # 27 # (add.s(5, 5) | mul.s(4)) # 40 # ) # | xsum.s() # 83 # ) # res.apply_async() # raise exception still can run, and call handle error function res = ( group( (add.s(4, 4) | mul.s(2)), # 16 (add.s(5, 4) | mul.s(3)), # 27 (add.s(5, 5) | mul.s(4)) # 40 ) | xsum.s() # 83 ) res.apply_async(link_error=report_error()) # raise exception then it's run forever # res = ( # group( # (add.s(4, 4) | mul.s(2)), # 16 # (add.s(5, 4) | mul.s(3)), # 27 # (add.s(5, 5) | mul.s(4)) # 40 # ) # | xsum.s() # 83
def test_complex_chord(): result = chord(mul.s(i, i) for i in range(100))(xsum.s()).get() print(result)
def test_linking(): result = add.apply_async((2, 2), link=mul.s(5)) print(result.get()) print(list(result.collect()))