code: def handle_task(self, uuid_task, worker=None):
          
          uuid, task = uuid_task
          if task.worker and task.worker.hostname:
              worker = self.handle_worker(
                  (task.worker.hostname, task.worker),
              )
  
          defaults = {
              'name': task.name,
              'args': task.args,
              'kwargs': task.kwargs,
              'eta': correct_awareness(maybe_iso8601(task.eta)),
              'expires': correct_awareness(maybe_iso8601(task.expires)),
              'state': task.state,
              'tstamp': fromtimestamp(task.timestamp),
              'result': task.result or task.exception,
              'traceback': task.traceback,
              'runtime': task.runtime,
              'worker': worker
          }
          # Some fields are only stored in the RECEIVED event,
          # so we should remove these from default values,
          # so that they are not overwritten by subsequent states.
          [defaults.pop(attr, None) for attr in NOT_SAVED_ATTRIBUTES
           if defaults[attr] is None]
          return self.update_task(task.state,
                                  task_id=uuid, defaults=defaults)
docs: Handle snapshotted event.