From e87ae50dfe1c7f6f6616cf3cae26334aecc5cb4c Mon Sep 17 00:00:00 2001 From: Jonathan Kolyer Date: Sat, 26 Jul 2014 04:10:40 +0000 Subject: [PATCH] VRFS-1942 tuning admin view --- admin/app/admin/email_daily_scheduled_session.rb | 3 ++- .../jam_ruby/models/email_batch_scheduled_sessions.rb | 10 +++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/admin/app/admin/email_daily_scheduled_session.rb b/admin/app/admin/email_daily_scheduled_session.rb index 2fc9f4efd..94bdfa16c 100644 --- a/admin/app/admin/email_daily_scheduled_session.rb +++ b/admin/app/admin/email_daily_scheduled_session.rb @@ -23,7 +23,7 @@ ActiveAdmin.register JamRuby::EmailBatchScheduledSessions, :as => 'Daily Session show :title => "Daily Session Snapshot" do |obj| h3 "Session created range: (#{obj.earliest_session_create_time}, #{obj.latest_session_create_time}); Earliest session start: #{obj.earliest_session_start_time}" h3 "Max Latency Score: #{params[:max_score] ? params[:max_score] : Score::MAX_YELLOW_LATENCY}" - h4 "(append URL with ?max_score=NN to change max latency from default (#{Score::MAX_YELLOW_LATENCY}))" + h4 "(append URL with ?max_score=N to change max latency from default (#{Score::MAX_YELLOW_LATENCY}))" num, objs = obj.snapshot_scored_recipients panel "Session & Scoring Matches (#{num})" do @@ -71,6 +71,7 @@ ActiveAdmin.register JamRuby::EmailBatchScheduledSessions, :as => 'Daily Session else ENV[EmailBatchScheduledSessions::ENV_MAX_LATENCY] = '0' end + ENV[EmailBatchScheduledSessions::ENV_QUERY_LIMIT] = EmailBatchScheduledSessions::SNAPSHOT_QUERY_LIMIT set_resource_ivar(EmailBatchScheduledSessions.refresh_snapshot!) render active_admin_template('show') end diff --git a/ruby/lib/jam_ruby/models/email_batch_scheduled_sessions.rb b/ruby/lib/jam_ruby/models/email_batch_scheduled_sessions.rb index c5df403a5..50b542b89 100644 --- a/ruby/lib/jam_ruby/models/email_batch_scheduled_sessions.rb +++ b/ruby/lib/jam_ruby/models/email_batch_scheduled_sessions.rb @@ -30,6 +30,8 @@ module JamRuby TMP_MATCH = 'tmp_matches' ENV_MAX_LATENCY = 'env_max_latency' + ENV_QUERY_LIMIT = 'env_query_limit' + SNAPSHOT_QUERY_LIMIT = '500' def self.refresh_snapshot! self.where(:aasm_state => 'snapshot').limit(1).first.try(:destroy) @@ -125,6 +127,7 @@ module JamRuby # inserts eligible sessions to temp table def _collect_eligible_sessions ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS #{TMP_SESS}") + limit_sql = (self.snapshot? && 0 < ENV[ENV_QUERY_LIMIT].to_i) ? "LIMIT #{ENV[ENV_QUERY_LIMIT]}" : '' sql =<= '#{earliest_session_start_time}' AND (rrrs.rsvp_slot_id IS NULL OR rrrs.chosen != 't') +#{limit_sql} SQL ActiveRecord::Base.connection.execute(sql) end def _collect_eligible_recipients ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS #{TMP_RECIP}") + limit_sql = (self.snapshot? && 0 < ENV[ENV_QUERY_LIMIT].to_i) ? "LIMIT #{ENV[ENV_QUERY_LIMIT]}" : '' # load eligible recipients into tmp table sql =<