53 lines
1.5 KiB
Ruby
53 lines
1.5 KiB
Ruby
module Maintenance
|
|
module_function
|
|
|
|
def hourly
|
|
UploadErrorChecker.new.check!
|
|
DelayedJobErrorChecker.new.check!
|
|
rescue Exception => exception
|
|
rescue_exception(exception)
|
|
end
|
|
|
|
def daily
|
|
ActiveRecord::Base.connection.execute("set statement_timeout = 0")
|
|
PostPruner.new.prune!
|
|
Upload.where('created_at < ?', 1.day.ago).delete_all
|
|
Delayed::Job.where('created_at < ?', 45.days.ago).delete_all
|
|
PostVote.prune!
|
|
CommentVote.prune!
|
|
ApiCacheGenerator.new.generate_tag_cache
|
|
PostDisapproval.prune!
|
|
ForumSubscription.process_all!
|
|
TagAlias.update_cached_post_counts_for_all
|
|
PostDisapproval.dmail_messages!
|
|
Tag.clean_up_negative_post_counts!
|
|
SuperVoter.init!
|
|
TokenBucket.prune!
|
|
TagChangeRequestPruner.warn_all
|
|
TagChangeRequestPruner.reject_all
|
|
Ban.prune!
|
|
rescue Exception => exception
|
|
rescue_exception(exception)
|
|
end
|
|
|
|
def weekly
|
|
ActiveRecord::Base.connection.execute("set statement_timeout = 0")
|
|
UserPasswordResetNonce.prune!
|
|
ApproverPruner.prune!
|
|
TagRelationshipRetirementService.find_and_retire!
|
|
rescue Exception => exception
|
|
rescue_exception(exception)
|
|
end
|
|
|
|
def rescue_exception(exception)
|
|
backtrace = Rails.backtrace_cleaner.clean(exception.backtrace).join("\n")
|
|
Rails.logger.error("#{exception.class}: #{exception.message}\n#{backtrace}")
|
|
|
|
if defined?(NewRelic::Agent)
|
|
NewRelic::Agent.notice_error(exception, custom_params: { backtrace: backtrace })
|
|
end
|
|
|
|
raise exception
|
|
end
|
|
end
|