jam-cloud/ruby/lib/jam_ruby/resque/scheduled/jam_tracks_cleaner.rb

41 lines
1.3 KiB
Ruby

require 'json'
require 'resque'
require 'resque-retry'
require 'net/http'
require 'digest/md5'
module JamRuby
# periodically scheduled to find jam_tracks to cleanup
class JamTracksCleaner
extend Resque::Plugins::JamLonelyJob
@queue = :jam_tracks_cleaner
class << self
def log
@log || Logging.logger[JamTracksCleaner]
end
def lock_timeout
# this should be enough time to make sure the job has finished, but not so long that the system isn't recovering from a abandoned job
1200
end
def perform
# this needs more testing
# let's make sure jobs don't stay falsely queued for too long. 1 hour seems more than enough
JamTrackRight.where("queued = true AND (NOW() - signing_queued_at > '1 hour'::INTERVAL OR NOW() - updated_at > '1 hour'::INTERVAL").update_all(queued:false)
JamTrackRightMixdown.unscoped.where("queued = true AND (NOW() - signing_queued_at > '1 hour'::INTERVAL OR NOW() - updated_at > '1 hour'::INTERVAL").update_all(queued:false)
return
#JamTrackRight.ready_to_clean.each do |jam_track_right|
# log.debug("deleting files for jam_track_right #{jam_track_right.id}")
# jam_track_right.delete_s3_files
#end
end
end
end
end