Skip to content

Commit 3bea051

Browse files
committed
delete old error reports periodically, refs #4487
Change-Id: I94e75d61eaff56509dee8f00d955f0063caf5b68 Reviewed-on: https://gerrit.instructure.com/3597 Tested-by: Hudson <hudson@instructure.com> Reviewed-by: Zach Wily <zach@instructure.com>
1 parent 5985d12 commit 3bea051

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

app/models/error_report.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,12 @@ def guess_email
115115
self.email
116116
end
117117

118+
# delete old error reports before a given date
119+
# returns the number of destroyed error reports
120+
def self.destroy_error_reports(before_date)
121+
self.delete_all(['updated_at < ?', before_date])
122+
end
123+
118124
def self.useful_http_env_stuff_from_request(request)
119125
request.env.slice( *["HTTP_ACCEPT", "HTTP_ACCEPT_ENCODING", "HTTP_COOKIE", "HTTP_HOST", "HTTP_REFERER",
120126
"HTTP_USER_AGENT", "PATH_INFO", "QUERY_STRING", "REMOTE_ADDR", "REMOTE_HOST",

config/periodic_jobs.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,11 @@
6363
{ :priority => Delayed::LOW_PRIORITY })
6464
end
6565
end
66+
67+
scheduler.cron '35 */1 * * *' do
68+
cutoff = Setting.get('error_reports_retain_for', 3.months.to_s).to_i
69+
if cutoff > 0
70+
ErrorReport.send_later_enqueue_args(:destroy_error_reports, { :priority => Delayed::LOW_PRIORITY }, cutoff.ago)
71+
end
72+
end
73+

0 commit comments

Comments
 (0)