Celery es un sistema simple, flexible y confiableto process vast amounts of messages, while providing operations with the tools required to maintain such a system.
Reportes
Procesamiento en BackGround
Signature
Primitives
signature("name_function", *args, **kwargs, options)
signature("add", (2, 2), {'debug': True}, countdown=10)
add.s(2, 2), {'debug': True}, countdown=10)
Partials
Immutability
Callbacks
Permiten juntar tareas
s = sum_numbers.s(1,2)
s.link(mul_numbers.s(4))
s.link(sub_numbers.s(4)).delay()
chain(sum_numbers.s(1, 4), mul_numbers.s(4), sub_numbers.s(4)).delay()
Permite que una serie de tareas sean ejecutadas una detras de otra
g = group(sum_numbers.s(i, i) for i in range(100))
g.delay()
Es una tarea que solo se ejecuta cuando un grupo de tareas ha finalizado su ejecucion
chord(sum_numbers.s(i, i) for i in range(10))(pow_numbers.s()).delay()
Es una tarea que solo se ejecuta cuando un grupo de tareas ha finalizado su ejecucion
chord(sum_numbers.s(i, i) for i in range(10))(pow_numbers.s()).delay()
LLama la tarea secuenciamente
map envia los elementos como una variable
tasks.sum_numbers.map(list(zip(range(100), range(100)))).delay()
[counter.tasks.sum_numbers(x) for x in [(0, 0), (1, 1), (2, 2), (3, 3),
(4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11,...]
mientras que starmap los envia como parametros
tasks.sum_numbers.starmap(list(zip(range(100), range(100)))).delay()
[counter.tasks.sum_numbers(*x) for x in [(0, 0), (1, 1), (2, 2), (3, 3),
(4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11,...]
Permiten dividir una tarea iterable en grupos
sum_numbers.chunks(zip(range(100),
range(100)), 10).apply_async()