def activate(self, config): """Create a new cloned workspace from a configuration. This replaces any existing clone, cleaning up its resources. """ new_workspace = ClonedWorkspace(config.cloning_config) self.cleanup() self._config = config self._workspace = new_workspace
def _ensure_workspace(config): global _workspace global _pid if _workspace is not None: assert _pid == os.getpid() return log.info('Initialize celery4 workspace in PID %s', os.getpid()) _workspace = ClonedWorkspace(config.cloning_config) _pid = os.getpid() os.chdir(_workspace.clone_dir)
def _initialize_worker(config): # pylint: disable=global-statement global _workspace global _config assert _workspace is None assert _config is None _config = config log.info('Initialize local-git worker in PID %s', os.getpid()) _workspace = ClonedWorkspace(config.cloning_config) # Register a finalizer multiprocessing.util.Finalize(_workspace, _workspace.cleanup, exitpriority=16)
def _ensure_workspace(config): """This ensures that there is a ClonedWorkspace for the current process. """ global _workspace global _pid if _workspace is not None: assert _pid == os.getpid() return log.info('Initialize celery4 workspace in PID %s', os.getpid()) _workspace = ClonedWorkspace(config.cloning_config) _pid = os.getpid() # TODO: Consider a signal handler or something to know when to clean up the cloned workspace. os.chdir(_workspace.clone_dir)