37 lines
884 B
Ruby
37 lines
884 B
Ruby
require 'json'
|
|
require 'resque'
|
|
require 'resque-retry'
|
|
require 'net/http'
|
|
require 'digest/md5'
|
|
|
|
module JamRuby
|
|
class MusicSessionScheduler
|
|
extend Resque::Plugins::LonelyJob
|
|
|
|
@queue = :music_session_scheduler
|
|
|
|
@@log = Logging.logger[MusicSessionScheduler]
|
|
|
|
def self.lock_timeout
|
|
120
|
|
end
|
|
|
|
def self.perform
|
|
@@log.debug("MusicSessionScheduler waking up")
|
|
|
|
JamWebEventMachine.run_wait_stop do
|
|
MusicSessionScheduler.new.run
|
|
end
|
|
|
|
@@log.debug("MusicSessionScheduler done")
|
|
end
|
|
|
|
def run
|
|
# get all weekly sessions that have ended in the last 15 minutes
|
|
criteria = "recurring_mode = 'weekly' AND session_removed_at is not null AND canceled = false AND next_session_scheduled = false"
|
|
MusicSession.find_each(:conditions => criteria) do |music_session|
|
|
music_session.copy
|
|
end
|
|
end
|
|
end
|
|
end |