diff --git a/ruby/lib/jam_ruby/resque/scheduled/music_session_scheduler.rb b/ruby/lib/jam_ruby/resque/scheduled/music_session_scheduler.rb index f54215896..cd706285a 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/music_session_scheduler.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/music_session_scheduler.rb @@ -27,8 +27,8 @@ module JamRuby 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" + # get all weekly sessions that started at least 4 hours ago + criteria = "recurring_mode = 'weekly' AND scheduled_start + interval '4hours' < NOW() AND canceled = false AND next_session_scheduled = false" MusicSession.find_each(:conditions => criteria) do |music_session| music_session.copy end diff --git a/ruby/spec/jam_ruby/resque/music_session_scheduler_spec.rb b/ruby/spec/jam_ruby/resque/music_session_scheduler_spec.rb index ac4d95146..af872943b 100644 --- a/ruby/spec/jam_ruby/resque/music_session_scheduler_spec.rb +++ b/ruby/spec/jam_ruby/resque/music_session_scheduler_spec.rb @@ -18,8 +18,8 @@ describe "MusicSessionScheduler" do MusicSession.all.count.should == 1 - # end the session - ms.session_removed_at = Time.now + # move the session back more than 4 hours + ms.scheduled_start = Time.now - 5.hours ms.save! # run the scheduler again @@ -27,7 +27,6 @@ describe "MusicSessionScheduler" do MusicSession.all.count.should == 2 - MusicSession.where(:session_removed_at => nil).count.should == 1 MusicSession.where(:next_session_scheduled => true).count.should == 1 end @@ -40,7 +39,7 @@ describe "MusicSessionScheduler" do @scheduler.run MusicSession.all.count.should == 1 - ms.session_removed_at = Time.now + ms.scheduled_start = Time.now - 3.hours ms.save! @scheduler.run