Python Celery - How to call celery tasks inside other task

celery, django, djcelery, python

Solution

This should work:

celery.current_app.send_task('mymodel.tasks.mytask', args=[arg1, arg2, arg3])

Problem

I'm calling a task within a tasks in Django-Celery Here are my tasks. ``` @shared_task def post_notification(data,url): url = "http://posttestserver.com/data/?dir=praful" # when in production, remove this line. headers = {'content-type': 'application/json'} requests.post(url, data=json.dumps(data), headers=headers) @shared_task def shipment_server(data,notification_type): notification_obj = Notification.objects.get(name = notification_type) server_list = ServerNotificationMapping.objects.filter(notification_name=notification_obj) for server in server_list: task = post_notification.delay(data,server.server_id.url) print task.status # it prints 'Nonetype' has no attribute id ``` How can I call a task within a task? I read somewhere it can be done using `group`, but I'm not able to form the correct syntax. How do I do it? I tried this ``` for server in server_list: task = group(post_notification.s(data, server.server_id.url))().get() print task.status ``` Throws a warning saying ``` TxIsolationWarning: Polling results w│ ith transaction isolation level repeatable-read within the same transacti│ on may give outdated results. Be sure to commit the transaction for each │ poll iteration. │ 'Polling results with transaction isolation level ' ``` Dont know what it is!!! How do I solve my problem?

Original source