Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
@util.synchronized("watcher_restart")
@gen.coroutine
def restart(self):
before_pids = set() if self.is_stopped() else set(self.processes)
yield self._restart()
after_pids = set(self.processes)
raise gen.Return({'stopped': sorted(before_pids - after_pids),
'started': sorted(after_pids - before_pids),
'kept': sorted(after_pids & before_pids)})
@synchronized("arbiter_reload")
@gen.coroutine
@debuglog
def reload(self, graceful=True, sequential=False):
"""Reloads everything.
Run the :func:`prereload_fn` callable if any, then gracefuly
reload all watchers.
"""
if self._stopping:
return
if self.prereload_fn is not None:
self.prereload_fn(self)
# reopen log files
for handler in logger.handlers:
if isinstance(handler, logging.FileHandler):
@util.synchronized("watcher_incr")
@gen.coroutine
@util.debuglog
def incr(self, nb=1):
res = yield self.set_numprocesses(self.numprocesses + nb)
raise gen.Return(res)
@util.synchronized("watcher_reload")
@gen.coroutine
def reload(self, graceful=True, sequential=False):
before_pids = set() if self.is_stopped() else set(self.processes)
yield self._reload(graceful=graceful, sequential=sequential)
after_pids = set(self.processes)
raise gen.Return({'stopped': sorted(before_pids - after_pids),
'started': sorted(after_pids - before_pids),
'kept': sorted(after_pids & before_pids)})
@util.synchronized("watcher_stop")
@gen.coroutine
def stop(self):
# stop streams too since we are stopping the watcher completely
yield self._stop(True)
@synchronized("arbiter_start_watchers")
@gen.coroutine
def start_watchers(self, watcher_iter_func=None):
yield self._start_watchers(watcher_iter_func=watcher_iter_func)
@util.synchronized("watcher_decr")
@gen.coroutine
@util.debuglog
def decr(self, nb=1):
res = yield self.set_numprocesses(self.numprocesses - nb)
raise gen.Return(res)
@synchronized("arbiter_stop")
@gen.coroutine
def stop(self):
yield self.__stop(True)
@synchronized("arbiter_add_watcher")
def add_watcher(self, name, cmd, **kw):
"""Adds a watcher.
Options:
- **name**: name of the watcher to add
- **cmd**: command to run.
- all other options defined in the Watcher constructor.
"""
if name.lower() in self._watchers_names:
raise AlreadyExist("%r already exist" % name)
if not name:
return ValueError("command name shouldn't be empty")
watcher = Watcher(name, cmd, **kw)