code: def fire(self, exclude=None, delay=True):
          
          if delay:
              # Tasks don't receive the `self` arg implicitly.
              self._fire_task.apply_async(
                  args=(self,),
                  kwargs={'exclude': exclude},
                  serializer='pickle')
          else:
              self._fire_task(self, exclude=exclude)
docs: Notify everyone watching the event.
  
          We are explicit about sending notifications; we don't just key off
          creation signals, because the receiver of a ``post_save`` signal has no
          idea what just changed, so it doesn't know which notifications to send.
          Also, we could easily send mail accidentally: for instance, during
          tests. If we want implicit event firing, we can always register a
          signal handler that calls :meth:`fire()`.
  
          :arg exclude: If a saved user is passed in, that user will not be
            notified, though anonymous notifications having the same email
            address may still be sent. A sequence of users may also be passed in.
  
          :arg delay: If True (default), the event is handled asynchronously with
            Celery. This requires the pickle task serializer, which is no longer
            the default starting in Celery 4.0. If False, the event is processed
            immediately.