Celery,从任务中创建子任务:接收未注册的类型任务

时间:2013-07-10 15:21:59

标签: celery django-celery

使用django-celery,我正在尝试从主任务中创建一些子任务,但是我收到了这个错误:收到了'smallTask​​'类型的未注册任务。

知道什么是错的吗?如果这是以这种方式创建子任务的正确方法?

谢谢,

@task
def mainTask():
    count = 0
    logger = mainTask.get_logger()
    logger.info('LOGGER: in main task')

    while count < 10:
        subtask('smallTask', args=(count), countdown=0).apply_async()
        count += 1

@task
def smallTask():
    logger = smallTask.get_logger()
    logger.info('LOGGER: in main task')

1 个答案:

答案 0 :(得分:2)

不确定这是否是最好的方法,但是在另一个问题的SO上有一些额外的帮助,我现在就开始工作了。

@task
def mainTask():
    count = 0
    logger = mainTask.get_logger()
    logger.info('LOGGER: in main task')
    obj = {'foo':'bar'}
    while count < 10:
        subtask('smallTask', args=(obj,)).apply_async()
        count += 1

@task(name='smallTask')
def smallTask():
    logger = smallTask.get_logger()
    logger.info('LOGGER: in sub task')