docs: def _handle_notification(self, method, params):
          """Handle a notification from the client."""
          if method == CANCEL_METHOD:
              self._handle_cancel_notification(params['id'])
              return
  
          try:
              handler = self._dispatcher[method]
          except KeyError:
              log.warn("Ignoring notification for unknown method %s", method)
              return
  
          try:
              handler_result = handler(params)
          except Exception:  # pylint: disable=broad-except
              log.exception("Failed to handle notification %s: %s", method, params)
              return
  
          if callable(handler_result):
              log.debug("Executing async notification handler %s", handler_result)
              notification_future = self._executor_service.submit(handler_result)
              notification_future.add_done_callback(self._notification_callback(method, params))