On Wed, 2010-10-27 at 10:16 -0700, Alexandre Conrad wrote: > Hello list, > > I have a feature request if this one isn't in the works already. > > To avoid service interruption, it would be great to have a "recycle" > command to restart the servers incrementally. So rather than using: > > supervisor> restart <gname>:* > > where all processes would be stopped then started again, we could have: > > supervisor> recycle <gname>:* > > where supvervisor would iterate over each process to stop *and* > restart them one-by-one allowing zero service downtime. > > I could have a look at the code as I have Python skills, but before I > start something I wanted to know what would be the chances for that > idea to be accepted.
This is something I think we'd all like. The thing you describe above assumes that the processes that need restarting are part of a homogenous group of processes. We probably eventually want something more general, like a dependency graph. For example, there are "heterogenous groups" (groups that have different processes as members), and of course processes that aren't in a group. It would be useful to be able to indicate the start-stop ordering/dependencies of things that aren't also in a homogenous group. The beg-off on that has been that interprocess dependency management is possible to do via an event listener. That said, I think maybe making homogenous groups behave this way with respect to a restart would be useful. Having a separate command for this seems to make sense, because it implies a slightly different set of semantics: "recycle" means "I want to restart all processes in this group, but if one fails to start, I want to stop trying to restart the rest" (if I understand correctly), but "restart" means "I want to restart all of these processes, and I don't care if one fails to restart". - C _______________________________________________ Supervisor-users mailing list [email protected] http://lists.supervisord.org/mailman/listinfo/supervisor-users
