diff --git a/lib/sidekiq/web/application.rb b/lib/sidekiq/web/application.rb index da787dce99..9e41d6b8ab 100644 --- a/lib/sidekiq/web/application.rb +++ b/lib/sidekiq/web/application.rb @@ -88,15 +88,24 @@ def self.set(key, val) erb(:queue) end - - post "/queues/:name" do + + post '/queues/:name' do queue = Sidekiq::Queue.new(route_params[:name]) - if Sidekiq.pro? && params["pause"] + unless Sidekiq.pro? + queue.clear + redirect "#{root_path}queues" + end + + if params['pause'] queue.pause! - elsif Sidekiq.pro? && params["unpause"] + elsif params['unpause'] queue.unpause! - else + elsif params['set_non_work_hour'] + queue.set_non_work_hour_only! + elsif params['unset_non_work_hour'] + queue.unset_non_work_hour_only! + elsif params['delete'] queue.clear end diff --git a/web/locales/en.yml b/web/locales/en.yml index 161968e897..d11054b2bc 100644 --- a/web/locales/en.yml +++ b/web/locales/en.yml @@ -26,7 +26,9 @@ en: # <---- change this to your locale code Delete: Delete AddToQueue: Add to queue AreYouSureDeleteJob: Are you sure you want to delete this job? - AreYouSureDeleteQueue: Are you sure you want to delete the %{queue} queue? + AreYouSureDeleteQueue: Are you sure you want to delete the %{queue} queue? This will delete all jobs within the queue, it will reappear if you push more jobs to it in the future. + AreYouSureNonWorkHourQueue: Are you sure? This will pause the %{queue} queue and will execute the jobs only during non-work hours! + AreYouSureUnpauseNonWorkHourQueue: Running an intensive job during work-hours may have real production consequence on performance. It is not uncommon for such jobs to hammer our database and slow down the website. Please seek approval from Ray or the #squad-platform before you do this. Queues: Queues Size: Size Actions: Actions @@ -81,3 +83,5 @@ en: # <---- change this to your locale code Latency: Latency Pause: Pause Unpause: Unpause + StartExecution: Run all hours + PauseTillNonWorkHours: Run non-work hours diff --git a/web/views/queues.erb b/web/views/queues.erb index f4dde49d25..597ef53674 100644 --- a/web/views/queues.erb +++ b/web/views/queues.erb @@ -1,35 +1,54 @@

<%= t('Queues') %>

-
+ - + <% @queues.each do |queue| %> - +
<%= t('Queue') %> <%= t('Size') %> <%= t('Latency') %><%= t('Actions') %><%= t('Actions') %>
<%= h queue.name %> <% if queue.paused? %> - <%= t('Paused') %> + <%= t('Paused') %> + <% end %> + <% if queue.is_non_work_hour_only? %> + Non-work hours only <% end %> <%= number_with_delimiter(queue.size) %> <% queue_latency = queue.latency %><%= number_with_delimiter(queue_latency.round(2)) %><%= (queue_latency < 60) ? '' : " (#{relative_time(Time.at(Time.now.to_f - queue_latency))})" %> + <% queue_latency = queue.latency %><%= number_with_delimiter(queue_latency.round(2)) %><%= (queue_latency < 60) ? '' : " (#{relative_time(Time.at(Time.now.to_f - queue_latency))})" %> -
+ <%= csrf_tag %> - - - <% if Sidekiq.pro? %> + <% if queue.is_non_work_hour_only? %> + + <% else %> + + <% end %> + <% unless queue.is_non_work_hour_only? %> <% if queue.paused? %> - + <% else %> - + <% end %> <% end %> +