2013-07-10 53 views
0

的未注册任务使用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') 

回答

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')