Estoy usando apio-acebo para iniciar una tarea principal que inicia una serie de tareas secundarias. Ya tengo ambas tareas escritas.Tarea de apio que ejecuta más tareas
¿Hay alguna manera de hacer esto fácilmente? ¿El apio permite que las tareas se ejecuten desde dentro de las tareas?
Mi ejemplo:
@task
def compute(users=None):
if users is None:
users = User.objects.all()
tasks = []
for user in users:
tasks.append(compute_for_user.subtask((user.id,)))
job = TaskSet(tasks)
job.apply_async() # raises a IOError: Socket closed
@task
def compute_for_user(user_id):
#do some stuff
compute
se llama a partir de celerybeat, pero causa una IOError cuando se trata de correr apply_async
. ¿Algunas ideas?
http://celeryproject.org/docs/userguide/tasksets.html – bdd
puede un taskset se inició desde el interior de una tarea? –
Las tareas y los conjuntos de tareas se pueden aplicar desde dentro de una tarea, pero nunca debe esperar por sus resultados (vea http://docs.celeryproject.org/en/latest/userguide/tasks.html#avoid-launching-synchronous-subtasks) – asksol