def __init__(self, name, cmd, args=None, numprocesses=1, warmup_delay=0., working_dir=None, shell=False, uid=None, gid=None, send_hup=False, env=None, stopped=True, flapping_attempts=2, flapping_window=1., retry_in=7., max_retry=5, graceful_timeout=30., prereload_fn=None, rlimits=None, executable=None, stdout_stream=None, stderr_stream=None, stream_backend='thread'): self.name = name self.res_name = name.lower().replace(" ", "_") self.numprocesses = int(numprocesses) self.warmup_delay = warmup_delay self.cmd = cmd self.args = args self._process_counter = 0 self.stopped = stopped self.flapping_attempts = flapping_attempts self.flapping_window = flapping_window self.retry_in = retry_in self.max_retry = max_retry self.graceful_timeout = 30 self.prereload_fn = prereload_fn self.executable = None self.stream_backend = stream_backend self.stdout_stream = stdout_stream if stdout_stream: self.stdout_redirector = get_pipe_redirector(stdout_stream, backend=stream_backend) else: self.stdout_redirector = None self.stderr_stream = stderr_stream if stderr_stream: self.stderr_redirector = get_pipe_redirector(stderr_stream, backend=stream_backend) else: self.stderr_redirector = None self.optnames = ("numprocesses", "warmup_delay", "working_dir", "uid", "gid", "send_hup", "shell", "env", "cmd", "flapping_attempts", "flapping_window", "retry_in", "args", "max_retry", "graceful_timeout", "executable") if not working_dir: # working dir hasn't been set working_dir = util.get_working_dir() self.working_dir = working_dir self.processes = {} self.shell = shell self.uid = uid self.gid = gid self.env = env self.rlimits = rlimits self.send_hup = send_hup self.evpub_socket = None
def _create_redirectors(self): if self.stdout_stream: if self.stdout_redirector is not None: self.stdout_redirector.stop() self.stdout_redirector = get_pipe_redirector(self.stdout_stream, loop=self.loop) else: self.stdout_redirector = None if self.stderr_stream: if self.stderr_redirector is not None: self.stderr_redirector.stop() self.stderr_redirector = get_pipe_redirector(self.stderr_stream, loop=self.loop) else: self.stderr_redirector = None
def _create_redirectors(self): if self.stdout_stream: if self.stdout_redirector is not None and self.stdout_redirector.running: self.stdout_redirector.kill() self.stdout_redirector = get_pipe_redirector(self.stdout_stream, backend=self.stream_backend) else: self.stdout_redirector = None if self.stderr_stream: if self.stderr_redirector is not None and self.stderr_redirector.running: self.stderr_redirector.kill() self.stderr_redirector = get_pipe_redirector(self.stderr_stream, backend=self.stream_backend) else: self.stderr_redirector = None
def _create_redirectors(self): if self.stdout_stream: if (self.stdout_redirector is not None and self.stdout_redirector.running): self.stdout_redirector.kill() self.stdout_redirector = get_pipe_redirector( self.stdout_stream, loop=self.loop) else: self.stdout_redirector = None if self.stderr_stream: if (self.stderr_redirector is not None and self.stderr_redirector.running): self.stderr_redirector.kill() self.stderr_redirector = get_pipe_redirector( self.stderr_stream, loop=self.loop) else: self.stderr_redirector = None
def _create_redirectors(self): if self.stdout_stream: if (self.stdout_redirector is not None and self.stdout_redirector.running): self.stdout_redirector.kill() self.stdout_redirector = get_pipe_redirector( self.stdout_stream, backend=self.stream_backend) else: self.stdout_redirector = None if self.stderr_stream: if (self.stderr_redirector is not None and self.stderr_redirector.running): self.stderr_redirector.kill() self.stderr_redirector = get_pipe_redirector( self.stderr_stream, backend=self.stream_backend) else: self.stderr_redirector = None
def _reload_stream(self, key, val): parts = key.split('.', 1) action = 0 if parts[0] == 'stdout_stream': old_stream = self.stdout_stream self.stdout_stream_conf[parts[1]] = val self.stdout_stream = get_stream(self.stdout_stream_conf, reload=True) if self.stdout_redirector: self.stdout_redirector.redirect = self.stdout_stream['stream'] else: self.stdout_redirector = get_pipe_redirector( self.stdout_stream, loop=self.loop) self.stdout_redirector.start() action = 1 if old_stream and hasattr(old_stream['stream'], 'close'): old_stream['stream'].close() else: old_stream = self.stderr_stream self.stderr_stream_conf[parts[1]] = val self.stderr_stream = get_stream(self.stderr_stream_conf, reload=True) if self.stderr_redirector: self.stderr_redirector.redirect = self.stderr_stream['stream'] else: self.stderr_redirector = get_pipe_redirector( self.stderr_stream, loop=self.loop) self.stderr_redirector.start() action = 1 if old_stream and hasattr(old_stream['stream'], 'close'): old_stream['stream'].close() return action
def __init__(self, name, cmd, args=None, numprocesses=1, warmup_delay=0., working_dir=None, shell=False, uid=None, gid=None, send_hup=False, env=None, stopped=True, flapping_attempts=2, flapping_window=1., retry_in=7., max_retry=5, graceful_timeout=30., prereload_fn=None, rlimits=None, executable=None, stdout_stream=None, stderr_stream=None, stream_backend='thread', priority=0): self.name = name self.res_name = name.lower().replace(" ", "_") self.numprocesses = int(numprocesses) self.warmup_delay = warmup_delay self.cmd = cmd self.args = args self._process_counter = 0 self.stopped = stopped self.flapping_attempts = flapping_attempts self.flapping_window = flapping_window self.retry_in = retry_in self.max_retry = max_retry self.graceful_timeout = 30 self.prereload_fn = prereload_fn self.executable = None self.stream_backend = stream_backend self.priority = priority self.stdout_stream = stdout_stream if stdout_stream: self.stdout_redirector = get_pipe_redirector(stdout_stream, backend=stream_backend) else: self.stdout_redirector = None self.stderr_stream = stderr_stream if stderr_stream: self.stderr_redirector = get_pipe_redirector(stderr_stream, backend=stream_backend) else: self.stderr_redirector = None self.optnames = ("numprocesses", "warmup_delay", "working_dir", "uid", "gid", "send_hup", "shell", "env", "cmd", "flapping_attempts", "flapping_window", "retry_in", "args", "max_retry", "graceful_timeout", "executable", "priority") if not working_dir: # working dir hasn't been set working_dir = util.get_working_dir() self.working_dir = working_dir self.pids = {} self.processes = {} self.shell = shell self.uid = uid self.gid = gid self.env = env self.rlimits = rlimits self.send_hup = send_hup self.evpub_socket = None