# Que es Celery?

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

# Eyeride

Procesamiento en BackGround

Signature

Primitives

# Signature

```signature("name_function", *args, **kwargs, options)
```

signature("add", (2, 2), {'debug': True}, countdown=10)

Partials

Immutability

Callbacks

# Primitives

## Chains

Permiten juntar tareas

``````s = sum_numbers.s(1,2)

chain(sum_numbers.s(1, 4), mul_numbers.s(4), sub_numbers.s(4)).delay()``````

# Primitives

## Groups

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()``````

# Primitives

## Chords

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()``

# Primitives

## Chords

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()``

# Primitives

## map y starmap

LLama la tarea secuenciamente

``````map envia los elementos como una variable

[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

[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,...]
``````

# Primitives

## Chunks

Permiten dividir una tarea iterable en grupos

``````sum_numbers.chunks(zip(range(100),
range(100)), 10).apply_async()``````