Browse Source

Start selecting delivery_info again as SQS sends some unpickleable things. Closes #876

Ask Solem 12 years ago
parent
commit
cbaefa2be7
2 changed files with 12 additions and 2 deletions
  1. 5 1
      celery/tests/worker/test_request.py
  2. 7 1
      celery/worker/job.py

+ 5 - 1
celery/tests/worker/test_request.py

@@ -778,7 +778,11 @@ class test_TaskRequest(Case):
                     'task_id': tw.id,
                     'task_retries': 0,
                     'task_is_eager': False,
-                    'delivery_info': {},
+                    'delivery_info': {
+                        'exchange': None,
+                        'routing_key': None,
+                        'priority': None,
+                    },
                     'task_name': tw.name})
 
     @patch('celery.worker.job.logger')

+ 7 - 1
celery/worker/job.py

@@ -127,7 +127,13 @@ class Request(object):
         else:
             self.expires = None
 
-        self.delivery_info = delivery_info or {}
+        delivery_info = {} if delivery_info is None else delivery_info
+        self.delivery_info = {
+            'exchange': delivery_info.get('exchange'),
+            'routing_key': delivery_info.get('routing_key'),
+            'priority': delivery_info.get('priority'),
+        }
+
         # amqplib transport adds the channel here for some reason, so need
         # to remove it.
         self.delivery_info.pop('channel', None)