From d3b22afe16887018275be3fb7930e4053e21db02 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Tue, 29 Jul 2014 22:40:42 -0400 Subject: [PATCH 1/2] schedule sessions that are at least 4 hours old --- .../lib/jam_ruby/resque/scheduled/music_session_scheduler.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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..762d0c915 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,9 @@ 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 + time_threshold = Time.now. + 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 From 24eb53cc07123a3f370984196adba14b663c7bf2 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Tue, 29 Jul 2014 22:46:07 -0400 Subject: [PATCH 2/2] fix syntax error and tests --- .../jam_ruby/resque/scheduled/music_session_scheduler.rb | 1 - ruby/spec/jam_ruby/resque/music_session_scheduler_spec.rb | 7 +++---- 2 files changed, 3 insertions(+), 5 deletions(-) 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 762d0c915..cd706285a 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/music_session_scheduler.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/music_session_scheduler.rb @@ -28,7 +28,6 @@ module JamRuby def run # get all weekly sessions that started at least 4 hours ago - time_threshold = Time.now. 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 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