Where do you set the task_id of a celery task?

michael picture michael · Apr 19, 2012 · Viewed 9.4k times · Source

I am having trouble finding any example of setting a task_id with my own task_id

something along these lines...

def testview1(request):
    for i in xrange(0,1000):
        result = add.delay( i, 4,task_id = i)
        print result.info
        #value = result.wait()
    return HttpResponse("Done") 


@task()
def add(task_id, x, y):
    print add.task_id
    print str(x+y)
    return x + y

Answer

asksol picture asksol · Apr 20, 2012

delay doesn't support options, it's a shortcut to apply_async:

add.apply_async(args, kwargs, task_id=i)

add.apply_async((1, 4), task_id=i)

Also the id of the current task is in task.request.id not task.id like you have above.