def METHOD_NAME(self, worker_func, schema, elastic_host, task_index):
    worker_function = getattr(migration_workers, worker_func, None)
    if worker_function is None:
        logger.log(level=logging.ERROR, msg=f"No migration worker defined for name {schema.worker}. "
                                            f"Skipping migration with name {schema.name}")
        return
    # Runs all workers defined in worker.service.worker.migration_workers.__init__
    # All have defined interface of:
    #   * celery_job,
    #   * schema: MigrationSchema,
    #   * elastic_url: str, task_index: str
    #   * elastic_task_index - this is for saving progress
    worker_function(self, MigrationSchema(**schema), elastic_host, task_index)