Skip to content
This repository has been archived by the owner on Mar 2, 2021. It is now read-only.

Commit

Permalink
Merge pull request #14 from tumb1er/restart_worker
Browse files Browse the repository at this point in the history
restart worker on termination
  • Loading branch information
tumb1er committed Jul 11, 2016
2 parents 861d0f1 + 51230e7 commit 0d77b91
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions dvasya/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,8 @@ def waitpid(self):
% (child, exitcode))
if self._terminating:
self.remove_worker(child)
else:
self.restart_worker(child)
except:
break

Expand All @@ -290,6 +292,22 @@ def remove_worker(self, pid):
self.logger.debug("removing worker %s" % pid)
self.workers.remove(worker)

def restart_worker(self, pid):
worker = None
for worker in self.workers:
if worker.pid == pid:
break
if not worker:
self.logger.error("unregistered worker found, exiting")
self.loop.stop()
return
self.logger.debug("restarting worker %s" % pid)
try:
worker.kill()
except Exception:
self.logger.error("Error while restarting worker %s" % pid)
worker.start()

def prefork(self):
if not self.args.no_daemon:
self.daemonize()
Expand Down

0 comments on commit 0d77b91

Please sign in to comment.