Преглед на файлове

events.State should not modify the event dict.

Ask Solem преди 12 години
родител
ревизия
2451f991e8
променени са 1 файла, в които са добавени 4 реда и са изтрити 4 реда
  1. 4 4
      celery/events/state.py

+ 4 - 4
celery/events/state.py

@@ -278,11 +278,11 @@ class State(object):
 
     def task_event(self, type, fields):
         """Process task event."""
-        uuid = fields.pop('uuid')
-        hostname = fields.pop('hostname')
+        uuid = fields['uuid']
+        hostname = fields['hostname']
         worker = self.get_or_create_worker(hostname)
         task = self.get_or_create_task(uuid)
-        handler = getattr(task, 'on_%s' % type, None)
+        handler = getattr(task, 'on_' + type, None)
         if type == 'received':
             self.task_count += 1
         if handler:
@@ -298,7 +298,7 @@ class State(object):
     def _dispatch_event(self, event):
         self.event_count += 1
         event = kwdict(event)
-        group, _, subject = event.pop('type').partition('-')
+        group, _, subject = event['type'].partition('-')
         getattr(self, group + '_event')(subject, event)
         if self.event_callback:
             self.event_callback(self, event)