def METHOD_NAME(self, event, project_name):
    time_start = time.time()
    self.show_message(event, "Synchronization - Preparing data", True)
    try:
        output = self.entities_factory.launch_setup(project_name)
        if output is not None:
            return output
        time_1 = time.time()
        self.entities_factory.set_cutom_attributes()
        time_2 = time.time()
        # This must happen before all filtering!!!
        self.entities_factory.prepare_avalon_entities(project_name)
        time_3 = time.time()
        self.entities_factory.filter_by_ignore_sync()
        time_4 = time.time()
        self.entities_factory.duplicity_regex_check()
        time_5 = time.time()
        self.entities_factory.prepare_ftrack_ent_data()
        time_6 = time.time()
        self.entities_factory.synchronize()
        time_7 = time.time()
        self.log.debug(
            "*** Synchronization finished ***"
        )
        self.log.debug(
            "preparation <{}>".format(time_1 - time_start)
        )
        self.log.debug(
            "set_cutom_attributes <{}>".format(time_2 - time_1)
        )
        self.log.debug(
            "prepare_avalon_entities <{}>".format(time_3 - time_2)
        )
        self.log.debug(
            "filter_by_ignore_sync <{}>".format(time_4 - time_3)
        )
        self.log.debug(
            "duplicity_regex_check <{}>".format(time_5 - time_4)
        )
        self.log.debug(
            "prepare_ftrack_ent_data <{}>".format(time_6 - time_5)
        )
        self.log.debug(
            "synchronize <{}>".format(time_7 - time_6)
        )
        self.log.debug(
            "* Total time: {}".format(time_7 - time_start)
        )
        if self.entities_factory.project_created:
            event = ftrack_api.event.base.Event(
                topic="openpype.project.created",
                data={"project_name": project_name}
            )
            self.session.event_hub.publish(event)
        report = self.entities_factory.report()
        if report and report.get("items"):
            default_title = "Synchronization report ({}):".format(
                project_name
            )
            self.show_interface(
                items=report["items"],
                title=report.get("title", default_title),
                event=event
            )
        return {
            "success": True,
            "message": "Synchronization Finished"
        }
    finally:
        try:
            self.entities_factory.dbcon.uninstall()
        except Exception:
            pass
        try:
            self.entities_factory.session.close()
        except Exception:
            pass