Commit 1da85d1e041eb7b1a998f52e104cc65807c045ba

Authored by Luke Baker
1 parent 2bd88b0f

add debug logging and find questions in batches of 3

Showing 2 changed files with 23 additions and 3 deletions   Show diff stats
lib/audit_logger.rb 0 → 100644
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
  1 +class AuditLogger < Logger
  2 + def format_message(severity, timestamp, progname, msg)
  3 + pid, size = `ps ax -o pid,rss | grep -E "^[[:space:]]*#{Process::pid}"`.chomp.split(/\s+/).map {|s| s.strip.to_i}
  4 + "[#{timestamp.to_formatted_s(:db)}] [#{severity}] [#{size} KB] #{msg}\n"
  5 + end
  6 +end
lib/tasks/test_api.rake
@@ -100,14 +100,16 @@ namespace :test_api do @@ -100,14 +100,16 @@ namespace :test_api do
100 100
101 desc "Description here" 101 desc "Description here"
102 task(:question_vote_consistency => :environment) do 102 task(:question_vote_consistency => :environment) do
103 - questions = Question.find(:all)  
104 errors = [] 103 errors = []
105 successes = [] 104 successes = []
106 105
107 - questions.each do |question| 106 + Question.find_each(:batch_size => 3) do |question|
108 107
  108 + debug("Starting tasks for question #{question.id}")
109 @question_tasks.each do |taskname, description| 109 @question_tasks.each do |taskname, description|
  110 + debug("Starting task #{taskname} for question #{question.id}")
110 message, error_occurred = send(taskname, question) 111 message, error_occurred = send(taskname, question)
  112 + debug("Completed task #{taskname} for question #{question.id}")
111 if error_occurred 113 if error_occurred
112 errors << message 114 errors << message
113 else 115 else
@@ -115,6 +117,7 @@ namespace :test_api do @@ -115,6 +117,7 @@ namespace :test_api do
115 end 117 end
116 end 118 end
117 119
  120 + debug("Starting choices tasks for question #{question.id}")
118 question.choices.each do |choice| 121 question.choices.each do |choice|
119 @choice_tasks.each do |taskname, description| 122 @choice_tasks.each do |taskname, description|
120 message, error_occurred = send(taskname, choice) 123 message, error_occurred = send(taskname, choice)
@@ -125,11 +128,14 @@ namespace :test_api do @@ -125,11 +128,14 @@ namespace :test_api do
125 end 128 end
126 end 129 end
127 end 130 end
  131 + debug("Completed choices tasks for question #{question.id}")
128 132
129 end 133 end
130 134
131 @global_tasks.each do |taskname, description| 135 @global_tasks.each do |taskname, description|
  136 + debug("Starting global task #{taskname}")
132 message, error_occurred = send(taskname) 137 message, error_occurred = send(taskname)
  138 + debug("Completed global task #{taskname}")
133 if error_occurred 139 if error_occurred
134 errors << message 140 errors << message
135 else 141 else
@@ -137,7 +143,7 @@ namespace :test_api do @@ -137,7 +143,7 @@ namespace :test_api do
137 end 143 end
138 end 144 end
139 145
140 - email_text = "Conducted the following tests on API data and found the following results\n" + "For each of the #{questions.length} questions in the database: \n" 146 + email_text = "Conducted the following tests on API data and found the following results\n" + "For each of the #{Question.all.count} questions in the database: \n"
141 errors.each do |e| 147 errors.each do |e|
142 email_text += " Test FAILED:\n" + e + "\n" 148 email_text += " Test FAILED:\n" + e + "\n"
143 end 149 end
@@ -512,3 +518,11 @@ def cleanup_args(args) @@ -512,3 +518,11 @@ def cleanup_args(args)
512 end 518 end
513 a 519 a
514 end 520 end
  521 +
  522 +def debug(message)
  523 + return unless ENV['debug'] == 'true'
  524 + if defined?(Rails)
  525 + logger = AuditLogger.new(STDOUT)
  526 + logger.info(message)
  527 + end
  528 +end