<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run(self, data, runtime_dir, argv):
 """Select a concrete connector and run the process through it. :param data: The :class:`~resolwe.flow.models.Data` object that is to be run. :param runtime_dir: The directory the executor is run from. :param argv: The argument vector used to spawn the executor. """

        process_scheduling = self.scheduling_class_map[data.process.scheduling_class]
        if 'DISPATCHER_MAPPING' in getattr(settings, 'FLOW_MANAGER', {}):
            class_name = settings.FLOW_MANAGER['DISPATCHER_MAPPING'][process_scheduling]
        else:
            class_name = getattr(settings, 'FLOW_MANAGER', {}).get('NAME', DEFAULT_CONNECTOR)

        data.scheduled = now()
        data.save(update_fields=['scheduled'])

        async_to_sync(self.sync_counter.inc)('executor')
        return self.connectors[class_name].submit(data, runtime_dir, argv)