ybernet-uAjRD0nVeow@public.gmane.org
2009-Feb-27 20:27 UTC
warning users that the site is coming down for maintenance
Hi. I have a site that is currently running in alpha mode. I have warned my users that it will be bouncing up and down as I deploy updates. That said, i''d like to broadcast a real time warning to them when I am about to do so. Something along the lines of: The site will be brought down for maintenance in five minutes. Save your work and logout to avoid losing data. Any clever suggestions on how to do this? A colleague suggested to me that I have a javascript on each page that polls the server for a change in status and pos up an alert. I''m looking for other creative suggestions... Thanks, Yoram --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Jeff Lewis
2009-Mar-01 02:12 UTC
Re: warning users that the site is coming down for maintenance
Hi Yoram, There are lots of different approaches, especially depending on what your app does and how it is implemented, but I usually do something like the following, which works for both development env (setup to re- reload all code/templates/etc on each request) and production env (setup to re-load code/templates/etc on app restart): ### in ./app/controllers/application.rb ... require ''time'' ... MAINT_DOWN_TIME_FILE = "#{RAILS_ROOT}/tmp/down_time_# {RAILS_ENV}.txt" ... before_filter :fetch_maint_down_time ... def fetch_maint_down_time @maint_down_time = nil begin s = IO.read(MAINT_DOWN_TIME_FILE) @maint_down_time = Time.parse(s) if s && s =~ /\d/ rescue #ignore, ... meaning no scheduled down time. end end ... ### in ./app/views/shared/_maintenance_msg.html.erb: <% if @maint_down_time -%> <% mins = (@maint_down_time - Time.now).to_i/60 -%> <% down_when = mins > 1 ? "in #{mins} minutes" : "imminently" -%> <div id=''sys_notice''> Notice: App going offline <%= h(down_when) %>. ... </div> <% end -%> ### in each layout, like ./app/views/layouts/testapp.html.erb: ... <%= render :partial=> ''shared/maintenance_msg'' %> ... Then anytime you want to warn your users for a given env about a planned maint down_time, you just stuff a parsable datetime in the appropriate env down time file, like: $ echo ''2009-02-28 18:20:00'' > ./tmp/down_time_production.txt which will automatically get picked up with the next request, and thus will display the maint msg on every screen of your app like: ... Notice: App going offline in 22 minutes. ... ... And then once you''ve completed your maintenance, you just clear out that down time file: $ echo '''' > ./tmp/down_time_production.txt and no maintenance msg will be displayed. Jeff On Feb 27, 12:27 pm, "yber...-uAjRD0nVeow@public.gmane.org" <yber...-uAjRD0nVeow@public.gmane.org> wrote:> Hi. I have a site that is currently running in alpha mode. I have > warned my users that it will be bouncing up and down as I deploy > updates. That said, i''d like to broadcast a real time warning to them > when I am about to do so. Something along the lines of: > > The site will be brought down for maintenance in five minutes. Save > your work and logout to avoid losing data. > > Any clever suggestions on how to do this? > > A colleague suggested to me that I have a javascript on each page that > polls the server for a change in status and pos up an alert. I''m > looking for other creative suggestions... > > Thanks, > Yoram--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---