Tengo un gran bucle para producir tareas:

for i in range(1000):
    receiver.apply_async(args=(i), kwargs={}, exchange=topic_exchange, routing_key=topic_key)

Y descubrí que hay un módulo celery.contrib.batches antes del apio 3.X o celery_batches después del apio 4.X. Pero este módulo no parece admitir tales parámetros. Entonces, ¿cómo puedo hacerlo?

Estoy usando apio 4.4.7 con rabbitmq.

1
Yang HG 31 ago. 2020 a las 05:56

1 respuesta

La mejor respuesta

Si por "lote" te refieres a un pequeño subconjunto (parte) de todas las tareas, entonces puedes buscar en Fragmentos. En lugar de usar fragmentos (después de todo, están hechos para diferentes propósitos), le sugiero que use Chord si te preocupan los resultados. De lo contrario, simplemente cree un grupo. Mil tareas no es nada: hemos tenido acordes / grupos hechos de decenas de miles de tareas y Celery hace frente a esa carga bastante bien.

2
DejanLekic 31 ago. 2020 a las 10:24