cleanup old sessions
This commit is contained in:
parent
cd7d28c819
commit
6ca148b515
|
|
@ -379,3 +379,4 @@ youtube_broadcast.sql
|
||||||
amazon_v1.sql
|
amazon_v1.sql
|
||||||
sms_index_optimize.sql
|
sms_index_optimize.sql
|
||||||
amazon_signup.sql
|
amazon_signup.sql
|
||||||
|
age_out_sessions.sql
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE music_sessions ADD COLUMN old BOOLEAN NOT NULL DEFAULT FALSE;
|
||||||
|
CREATE INDEX index_music_sessions_on_old ON music_sessions USING btree(old);
|
||||||
|
|
@ -184,26 +184,25 @@ CREATE OR REPLACE FUNCTION sms_index_test (my_user_id VARCHAR, my_locidispid BIG
|
||||||
$$ LANGUAGE plpgsql;
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
-- XXXX TODO: TURN THESE ON AFTER PRODUCTION IS UPDATED
|
-- XXXX TODO: TURN THESE ON AFTER PRODUCTION IS UPDATED
|
||||||
-- CREATE INDEX index_rsvp_requests_rsvp_slots_on_rsvp_request_id ON rsvp_requests_rsvp_slots USING btree(rsvp_request_id);
|
CREATE INDEX index_rsvp_requests_rsvp_slots_on_rsvp_request_id ON rsvp_requests_rsvp_slots USING btree(rsvp_request_id);
|
||||||
-- CREATE INDEX index_rsvp_requests_rsvp_slots_on_rsvp_slot_id ON rsvp_requests_rsvp_slots USING btree(rsvp_slot_id);
|
CREATE INDEX index_rsvp_requests_rsvp_slots_on_rsvp_slot_id ON rsvp_requests_rsvp_slots USING btree(rsvp_slot_id);
|
||||||
-- CREATE INDEX index_rsvp_requests_rsvp_slots_on_chosen ON rsvp_requests_rsvp_slots USING btree(chosen);
|
CREATE INDEX index_rsvp_requests_rsvp_slots_on_chosen ON rsvp_requests_rsvp_slots USING btree(chosen);
|
||||||
-- CREATE INDEX index_rsvp_slots_on_music_session_id ON rsvp_slots USING btree(music_session_id);
|
CREATE INDEX index_rsvp_slots_on_music_session_id ON rsvp_slots USING btree(music_session_id);
|
||||||
-- CREATE INDEX index_rsvp_requests_user_id ON rsvp_requests USING btree(user_id);
|
CREATE INDEX index_rsvp_requests_user_id ON rsvp_requests USING btree(user_id);
|
||||||
-- CREATE INDEX index_rsvp_requests_canceled ON rsvp_requests USING btree(canceled);
|
CREATE INDEX index_rsvp_requests_canceled ON rsvp_requests USING btree(canceled);
|
||||||
-- CREATE INDEX index_invitations_on_receiver_id ON invitations USING btree(receiver_id);
|
CREATE INDEX index_invitations_on_receiver_id ON invitations USING btree(receiver_id);
|
||||||
-- CREATE INDEX index_invitations_on_music_session_id ON invitations USING btree(music_session_id);
|
CREATE INDEX index_invitations_on_music_session_id ON invitations USING btree(music_session_id);
|
||||||
-- select sms_index_test('062deeba-b917-46e2-bfa3-e829405ca602'::varchar, 26880045373::bigint, 18.911563873291::integer, 'any'::varchar, false::boolean)
|
|
||||||
|
|
||||||
-- CREATE INDEX index_affiliate_traffic_totals_on_day ON affiliate_traffic_totals USING btree(day);
|
CREATE INDEX index_affiliate_traffic_totals_on_day ON affiliate_traffic_totals USING btree(day);
|
||||||
-- CREATE INDEX index_affiliate_traffic_totals_on_affiliate_partner_id ON affiliate_traffic_totals USING btree(affiliate_partner_id);
|
CREATE INDEX index_affiliate_traffic_totals_on_affiliate_partner_id ON affiliate_traffic_totals USING btree(affiliate_partner_id);
|
||||||
-- CREATE INDEX index_users_on_affiliate_referral_id ON users USING btree(affiliate_referral_id);
|
CREATE INDEX index_users_on_affiliate_referral_id ON users USING btree(affiliate_referral_id);
|
||||||
-- CREATE INDEX index_users_on_created_at ON users USING btree(created_at);
|
CREATE INDEX index_users_on_created_at ON users USING btree(created_at);
|
||||||
-- CREATE INDEX index_share_tokens_on_shareable_id ON share_tokens USING btree(shareable_id);
|
CREATE INDEX index_share_tokens_on_shareable_id ON share_tokens USING btree(shareable_id);
|
||||||
-- CREATE INDEX index_music_sessions_on_create_type ON music_sessions USING btree(create_type);
|
CREATE INDEX index_music_sessions_on_create_type ON music_sessions USING btree(create_type);
|
||||||
-- CREATE INDEX index_music_sessions_on_scheduled_start ON music_sessions USING btree(scheduled_start);
|
CREATE INDEX index_music_sessions_on_scheduled_start ON music_sessions USING btree(scheduled_start);
|
||||||
-- CREATE INDEX index_music_sessions_on_canceled ON music_sessions USING btree(canceled);
|
CREATE INDEX index_music_sessions_on_canceled ON music_sessions USING btree(canceled);
|
||||||
-- CREATE INDEX index_music_sessions_on_session_removed_at ON music_sessions USING btree(session_removed_at);
|
CREATE INDEX index_music_sessions_on_session_removed_at ON music_sessions USING btree(session_removed_at);
|
||||||
-- CREATE INDEX index_music_sessions_on_started_at ON music_sessions USING btree(started_at);
|
CREATE INDEX index_music_sessions_on_started_at ON music_sessions USING btree(started_at);
|
||||||
|
|
||||||
|
|
||||||
-- update music_sessions set canceled = true WHERE (scheduled_start IS NULL OR scheduled_start > (NOW() - (interval '15 minute'))) AND canceled = FALSE AND description != 'Jam Track Session' AND id NOT IN (SELECT id FROM active_music_sessions) AND id NOT IN (select distinct on(name, user_id) id FROM music_sessions WHERE (scheduled_start IS NULL OR scheduled_start > (NOW() - (interval '15 minute'))) AND canceled = FALSE AND description != 'Jam Track Session' AND id NOT IN (SELECT id FROM active_music_sessions) order by name, user_id);
|
-- update music_sessions set canceled = true WHERE (scheduled_start IS NULL OR scheduled_start > (NOW() - (interval '15 minute'))) AND canceled = FALSE AND description != 'Jam Track Session' AND id NOT IN (SELECT id FROM active_music_sessions) AND id NOT IN (select distinct on(name, user_id) id FROM music_sessions WHERE (scheduled_start IS NULL OR scheduled_start > (NOW() - (interval '15 minute'))) AND canceled = FALSE AND description != 'Jam Track Session' AND id NOT IN (SELECT id FROM active_music_sessions) order by name, user_id);
|
||||||
|
|
@ -214,26 +213,3 @@ $$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
-- get count
|
-- get count
|
||||||
-- SELECT count(id) FROM music_sessions WHERE (scheduled_start IS NULL OR scheduled_start > (NOW() - (interval '15 minute'))) AND canceled = FALSE AND description != 'Jam Track Session' AND id NOT IN (SELECT id FROM active_music_sessions)
|
-- SELECT count(id) FROM music_sessions WHERE (scheduled_start IS NULL OR scheduled_start > (NOW() - (interval '15 minute'))) AND canceled = FALSE AND description != 'Jam Track Session' AND id NOT IN (SELECT id FROM active_music_sessions)
|
||||||
|
|
||||||
|
|
||||||
SELECT distinct music_sessions.* FROM "music_sessions" LEFT OUTER JOIN
|
|
||||||
rsvp_slots
|
|
||||||
ON
|
|
||||||
music_sessions.id = rsvp_slots.music_session_id AND (music_sessions.canceled = FALSE)
|
|
||||||
|
|
||||||
LEFT OUTER JOIN
|
|
||||||
rsvp_requests_rsvp_slots
|
|
||||||
ON
|
|
||||||
rsvp_requests_rsvp_slots.rsvp_slot_id = rsvp_slots.id
|
|
||||||
LEFT OUTER JOIN
|
|
||||||
rsvp_requests
|
|
||||||
ON rsvp_requests.id = rsvp_requests_rsvp_slots.rsvp_request_id
|
|
||||||
LEFT OUTER JOIN
|
|
||||||
invitations
|
|
||||||
ON
|
|
||||||
music_sessions.id = invitations.music_session_id AND invitations.receiver_id = 'aedab51a-14cd-46d1-9828-29eadddd1f53'
|
|
||||||
|
|
||||||
|
|
||||||
WHERE
|
|
||||||
(music_sessions.scheduled_start IS NULL OR (music_sessions.scheduled_start > NOW() - '12 hour'::INTERVAL AND music_sessions.started_at IS NULL) OR (music_sessions.session_removed_at > NOW() - '2 hour'::INTERVAL) OR (music_sessions.started_at IS NOT NULL AND music_sessions.session_removed_at IS NULL)) AND (music_sessions.create_type IS NULL OR (music_sessions.create_type != 'quick-start' AND music_sessions.create_type != 'quick-public')) AND
|
|
||||||
((rsvp_requests.id IS NOT NULL AND rsvp_requests_rsvp_slots.id IS NOT NULL AND rsvp_requests.user_id = 'aedab51a-14cd-46d1-9828-29eadddd1f53' AND rsvp_requests_rsvp_slots.chosen = true) OR (invitations.id IS NOT NULL) OR (music_sessions.user_id = 'aedab51a-14cd-46d1-9828-29eadddd1f53') ) ORDER BY music_sessions.scheduled_start ASC;
|
|
||||||
|
|
@ -900,15 +900,14 @@ module JamRuby
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.cleanup_old_sessions
|
def self.cleanup_old_sessions
|
||||||
session__started = "(music_sessions.scheduled_start > NOW() - '12 hour'::INTERVAL AND music_sessions.started_at IS NULL)"
|
old_scheduled_start = "(create_type is NOT NULL AND music_sessions.scheduled_start < NOW() - '24 hour'::INTERVAL)"
|
||||||
|
|
||||||
# keep started sessions that are not finished yet
|
|
||||||
session_started_not_finished = "(music_sessions.started_at IS NOT NULL AND music_sessions.session_removed_at IS NULL)"
|
|
||||||
|
|
||||||
# let session be restarted for up to 2 hours after finishing
|
# let session be restarted for up to 2 hours after finishing
|
||||||
session_not_finished = "(music_sessions.session_removed_at > NOW() - '2 hour'::INTERVAL)"
|
session_not_finished = "(create_type IS NOT NULL AND music_sessions.session_removed_at < NOW() - '24 hour'::INTERVAL)"
|
||||||
|
|
||||||
MusicSession.where()
|
old_adhoc_sessions = "(create_type IS NULL and music_sessions.created_at < NOW() - '24 hour'::INTERVAL)"
|
||||||
|
|
||||||
|
MusicSession.where("#{old_scheduled_start} OR #{session_not_finished} OR #{old_adhoc_sessions}").update_all(old: true)
|
||||||
end
|
end
|
||||||
|
|
||||||
def end_history
|
def end_history
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,8 @@ module JamRuby
|
||||||
calendar_manager = CalendarManager.new
|
calendar_manager = CalendarManager.new
|
||||||
calendar_manager.cleanup()
|
calendar_manager.cleanup()
|
||||||
|
|
||||||
|
MusicSession.cleanup_old_sessions
|
||||||
|
|
||||||
@@log.debug("done")
|
@@log.debug("done")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue