NOTA Esta respuesta se dirige a las configuraciones nginx o Rack, ya que se escribieron antes de que las ediciones de la pregunta original dejaran claro que estaba buscando una respuesta específica para Heroku. La respuesta aceptada es la mejor para las aplicaciones de Heroku.
Cuando se dice "en su aplicación" es lo que realmente quiere decir en su aplicación?
Porque normalmente la solución es soltar un archivo de mantenimiento en su raíz web. Si se encuentra el archivo, se sirve con un 503 Service Not Available
inmediatamente. La solicitud nunca llega a su aplicación, que presumiblemente está "fuera de servicio".
En nginx, algo como esto:
location/{
if (-f $document_root/maintenance.html) {
return 503;
}
# continued server directives
}
error_page 503 @maintenance;
location @maintenance {
rewrite ^(.*)$ /maintenance.html break;
}
No sería realmente requieren un empuje per se, pero tal vez una tarea sencilla rastrillo o algo que añadir/quitar ese archivo de mantenimiento de su aplicación. Probablemente también podría reemplazar cualquier nombre de archivo dado en la verificación -f
, y simplemente touch
un archivo arbitrario maintenance.whatever
vacío en su raíz web, que luego dirigiría nginx para que sirva el mainenance.html
.
Si no quieren (o no pueden) perder el tiempo con la configuración del servidor, este muy simple Rack middleware hace esencialmente la misma cosa: https://github.com/ddollar/rack-maintenance
http://stackoverflow.com/questions/2244263/capistrano-to-deploy-rails-application-how-to-handle-long-migrations tiene discusión y solución para Apache similar. – leenasn