cleanup old sessions
This commit is contained in:
parent
cd7d28c819
commit
6ca148b515
|
|
@ -379,3 +379,4 @@ youtube_broadcast.sql
|
|||
amazon_v1.sql
|
||||
sms_index_optimize.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;
|
||||
|
||||
-- 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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);
|
||||
|
||||
|
||||
-- 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
|
||||
-- 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
|
||||
|
||||
def self.cleanup_old_sessions
|
||||
session__started = "(music_sessions.scheduled_start > NOW() - '12 hour'::INTERVAL AND music_sessions.started_at IS NULL)"
|
||||
|
||||
# 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)"
|
||||
old_scheduled_start = "(create_type is NOT NULL AND music_sessions.scheduled_start < NOW() - '24 hour'::INTERVAL)"
|
||||
|
||||
# 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
|
||||
|
||||
def end_history
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ module JamRuby
|
|||
calendar_manager = CalendarManager.new
|
||||
calendar_manager.cleanup()
|
||||
|
||||
MusicSession.cleanup_old_sessions
|
||||
|
||||
@@log.debug("done")
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue