How to hack a mongrel cluster to restart in an alternating manner?

Hello,

I’ve been trying (unsuccessfully) to hack my mongrel_cluster to
re-ststart
in an alternating manner.

Specifically, this soluiton:
http://blog.carlmercier.com/2007/09/07/a-better-approach-to-restarting-a-mongrel-cluster/#content

Which means I an call to mongrel_rails cluster::restart to do this:

mongrel_rails start 8001
mongrel_rails stop 8001

mongrel_rails start 8002
mongrel_rails stop 8002

mongrel_rails start 8003
mongrel_rails stop 8003

mongrel_rails start 8004
mongrel_rails stop 8004

Instead of:

mongrel_rails stop 8001
mongrel_rails stop 8002
mongrel_rails stop 8003
mongrel_rails stop 8004

[…503…application offline…]

mongrel_rails start 8001
mongrel_rails start 8002
mongrel_rails start 8003
mongrel_rails start 8004

(yuck!)

It’s has been very difficult for me to figure out where to install the
hacked mongrel_cluster_ctl that Carl provides in his blog.
The execution path is not clear.

Would anyone be willing to give me some ideas?

Thank you,
Elliott

I’ve had success with Eden Li’s patch here:
http://rubyforge.org/tracker/index.php?func=detail&aid=15427&group_id=1306&atid=5147.
Been using it in several production deploys for about 2 months.

If you’re interested (and too lazy to apply the patch yourself) you can
take
a look at my fork of mongrel that has mongrel_cluster doing rolling
restarts
here:
Commits · chuyeow/mongrel · GitHub

You need to clone the repos, go into the projects/mongrel_cluster
directory,
and run a rake task to package the gem.

Cheers,
Chu Yeow