@classmethod
    def dispatch(cls, source_id, meta):
        local_path = get_archive().load_file(meta)
        best_cls = cls.auction_file(meta, local_path)
        if best_cls is None:
            message = "No ingestor found: %r" % meta.file_name
            process.log(process.INGEST, component=cls.__name__, meta=meta,
                        source_id=source_id, error_type='NoIngestorFound',
                        error_message=message)
            return

        log.debug("Dispatching %r to %r", meta.file_name, best_cls.__name__)
        try:
            best_cls(source_id).ingest(meta, local_path)
        except Exception as ex:
            log.exception(ex)
            process.exception(process.INGEST, component=best_cls.__name__,
                              exception=ex, meta=meta, source_id=source_id)
        finally:
            get_archive().cleanup_file(meta)
dataset/ETHPy150Open pudo/aleph/aleph/ingest/ingestor.py/Ingestor.dispatch/original