diff --git a/ruby/lib/jam_ruby/models/friend_request.rb b/ruby/lib/jam_ruby/models/friend_request.rb index f6b57a42b..ffaa383f9 100644 --- a/ruby/lib/jam_ruby/models/friend_request.rb +++ b/ruby/lib/jam_ruby/models/friend_request.rb @@ -83,6 +83,10 @@ module JamRuby return friend_request end + def self.purgeable_requests + FriendRequest.where("status IS NULL AND created_at < ?", 1.week.ago) + end + private def self.validate_friend_request(friend_request, user_id, friend_id) friend_requests = FriendRequest.where("user_id='#{user_id}' AND friend_id='#{friend_id}'") diff --git a/ruby/lib/jam_ruby/resque/scheduled/friend_request_cleaner.rb b/ruby/lib/jam_ruby/resque/scheduled/friend_request_cleaner.rb new file mode 100644 index 000000000..c7121798a --- /dev/null +++ b/ruby/lib/jam_ruby/resque/scheduled/friend_request_cleaner.rb @@ -0,0 +1,18 @@ +module JamRuby + class FriendRequestCleaner + extend Resque::Plugins::JamLonelyJob + + @queue = :friend_request_cleaner + @@log = Logging.logger[FriendRequestCleaner] + + def self.perform + @@log.debug("waking up") + + FriendRequest.purgeable_requests do |request| + request.destroy + end + @@log.debug("done") + end + + end +end \ No newline at end of file diff --git a/web/config/scheduler.yml b/web/config/scheduler.yml index e3c09c2ae..4bfc332dd 100644 --- a/web/config/scheduler.yml +++ b/web/config/scheduler.yml @@ -104,3 +104,8 @@ TallyAffiliates: cron: "0 0,4,8,12,16,20 * * *" class: "JamRuby::TallyAffiliates" description: "Tallies up affiliate totals" + +FriendRequestCleaner: + cron: "0 3 * * *" + class: "JamRuby::FriendRequestCleaner" + description: "Purge old friend requests that have not been accepted"