docs: def handle_abort(self, obj):
          """Handle an incoming ``Data`` abort processing request.
  
          .. IMPORTANT::
  
              This only makes manager's state consistent and doesn't
              affect Data object in any way. Any changes to the Data
              must be applied over ``handle_update`` method.
  
          :param obj: The Channels message object. Command object format:
  
              .. code-block:: none
  
                  {
                      'command': 'abort',
                      'data_id': [id of the :class:`~resolwe.flow.models.Data` object
                                 this command was triggered by],
                  }
          """
          async_to_sync(consumer.send_event)({
              WorkerProtocol.COMMAND: WorkerProtocol.ABORT,
              WorkerProtocol.DATA_ID: obj[ExecutorProtocol.DATA_ID],
              WorkerProtocol.FINISH_COMMUNICATE_EXTRA: {
                  'executor': getattr(settings, 'FLOW_EXECUTOR', {}).get('NAME', 'resolwe.flow.executors.local'),
              },
          })