Задача Celery, которая выполняет больше задач

Я использую celerybeat для запуска основной задачи, которая запускает ряд второстепенных задач. Обе задачи у меня уже написаны.

Есть ли способ легко это сделать? Разрешает ли Celery запускать задачи изнутри задач?

Мой пример:

@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 вызывается из celerybeat,но вызывает ошибку IOError при попытке запустить apply_async . Есть идеи?

47
задан Mantas Vidutis 15 June 2011 в 21:17
поделиться