From 33fe217401c17f8ee2e7881eb610549076a5d7d5 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Mon, 30 Sep 2013 01:46:11 +0200 Subject: [PATCH] Fixed last_change feature. --- lib/sessions/backend/activity_stream.rb | 5 ++--- lib/sessions/backend/collections.rb | 8 ++++---- lib/sessions/backend/recent_viewed.rb | 5 ++--- lib/sessions/backend/rss.rb | 5 ++--- lib/sessions/backend/ticket_create.rb | 5 ++--- lib/sessions/backend/ticket_overview_index.rb | 5 ++--- lib/sessions/backend/ticket_overview_list.rb | 9 ++++----- lib/sessions/client.rb | 4 ++++ 8 files changed, 22 insertions(+), 24 deletions(-) diff --git a/lib/sessions/backend/activity_stream.rb b/lib/sessions/backend/activity_stream.rb index 880324876..cb87d28c0 100644 --- a/lib/sessions/backend/activity_stream.rb +++ b/lib/sessions/backend/activity_stream.rb @@ -1,5 +1,4 @@ module Sessions::Backend::ActivityStream - @@last_change = {} def self.worker( user, worker ) cache_key = 'user_' + user.id.to_s + '_activity_stream' @@ -21,8 +20,8 @@ module Sessions::Backend::ActivityStream cache_key = 'user_' + user.id.to_s + '_activity_stream' activity_stream_time = Sessions::CacheIn.get_time( cache_key, { :ignore_expire => true } ) - if activity_stream_time && @@last_change[ user.id ] != activity_stream_time - @@last_change[ user.id ] = activity_stream_time + if activity_stream_time && client.last_change['activity_stream'] != activity_stream_time + client.last_change['activity_stream'] = activity_stream_time activity_stream = Sessions::CacheIn.get( cache_key, { :ignore_expire => true } ) client.log 'notify', "push activity_stream for user #{user.id}" diff --git a/lib/sessions/backend/collections.rb b/lib/sessions/backend/collections.rb index 345a08ce1..600dd1012 100644 --- a/lib/sessions/backend/collections.rb +++ b/lib/sessions/backend/collections.rb @@ -39,17 +39,17 @@ module Sessions::Backend::Collections def self.push( user, client ) cache_key = 'user_' + user.id.to_s + '_push_collections' - if !@@last_change[ user.id ] - @@last_change[ user.id ] = {} + if !client.last_change['push_collections'] + client.last_change['push_collections'] = {} end collections = Sessions::CacheIn.get( cache_key ) || {} collections.each { | key, v | collection_cache_key = 'user_' + user.id.to_s + '_push_collections_' + key.to_s collection_time = Sessions::CacheIn.get_time( collection_cache_key, { :ignore_expire => true } ) - if collection_time && @@last_change[ user.id ][ key ] != collection_time + if collection_time && client.last_change['push_collections'][ key ] != collection_time - @@last_change[ user.id ][ key ] = collection_time + client.last_change['push_collections'][ key ] = collection_time push_collections = Sessions::CacheIn.get( collection_cache_key, { :ignore_expire => true } ) client.log 'notify', "push push_collections #{key} for user #{user.id}" diff --git a/lib/sessions/backend/recent_viewed.rb b/lib/sessions/backend/recent_viewed.rb index 24c02d60a..73f9987a3 100644 --- a/lib/sessions/backend/recent_viewed.rb +++ b/lib/sessions/backend/recent_viewed.rb @@ -1,5 +1,4 @@ module Sessions::Backend::RecentViewed - @@last_change = {} def self.worker( user, worker ) cache_key = 'user_' + user.id.to_s + '_recent_viewed' @@ -21,8 +20,8 @@ module Sessions::Backend::RecentViewed def self.push( user, client ) cache_key = 'user_' + user.id.to_s + '_recent_viewed' recent_viewed_time = Sessions::CacheIn.get_time( cache_key, { :ignore_expire => true } ) - if recent_viewed_time && @@last_change[ user.id ] != recent_viewed_time - @@last_change[ user.id ] = recent_viewed_time + if recent_viewed_time && client.last_change['recent_viewed'] != recent_viewed_time + client.last_change['recent_viewed'] = recent_viewed_time recent_viewed = Sessions::CacheIn.get( cache_key, { :ignore_expire => true } ) client.log 'notify', "push recent_viewed for user #{user.id}" diff --git a/lib/sessions/backend/rss.rb b/lib/sessions/backend/rss.rb index e223b93cb..42eb79d24 100644 --- a/lib/sessions/backend/rss.rb +++ b/lib/sessions/backend/rss.rb @@ -1,5 +1,4 @@ module Sessions::Backend::Rss - @@last_change = {} def self.worker( user, worker ) cache_key = 'user_' + user.id.to_s + '_rss' @@ -23,8 +22,8 @@ module Sessions::Backend::Rss cache_key = 'user_' + user.id.to_s + '_rss' rss_items_time = Sessions::CacheIn.get_time( cache_key, { :ignore_expire => true } ) - if rss_items_time && @@last_change[ user.id ] != rss_items_time - @@last_change[ user.id ] = rss_items_time + if rss_items_time && client.last_change['rss'] != rss_items_time + client.last_change['rss'] = rss_items_time rss_items = Sessions::CacheIn.get( cache_key, { :ignore_expire => true } ) client.log 'notify', "push rss for user #{user.id}" diff --git a/lib/sessions/backend/ticket_create.rb b/lib/sessions/backend/ticket_create.rb index a03f43d7b..3eeac1261 100644 --- a/lib/sessions/backend/ticket_create.rb +++ b/lib/sessions/backend/ticket_create.rb @@ -1,5 +1,4 @@ module Sessions::Backend::TicketCreate - @@last_change = {} def self.worker( user, worker ) cache_key = 'user_' + user.id.to_s + '_ticket_create_attributes' @@ -22,8 +21,8 @@ module Sessions::Backend::TicketCreate cache_key = 'user_' + user.id.to_s + '_ticket_create_attributes' ticket_create_attributes_time = Sessions::CacheIn.get_time( cache_key, { :ignore_expire => true } ) - if ticket_create_attributes_time && @@last_change[ user.id ] != ticket_create_attributes_time - @@last_change[ user.id ] = ticket_create_attributes_time + if ticket_create_attributes_time && client.last_change['ticket_create_attributes'] != ticket_create_attributes_time + client.last_change['ticket_create_attributes'] = ticket_create_attributes_time create_attributes = Sessions::CacheIn.get( cache_key, { :ignore_expire => true } ) users = {} create_attributes[:owner_id].each {|user_id| diff --git a/lib/sessions/backend/ticket_overview_index.rb b/lib/sessions/backend/ticket_overview_index.rb index 5e759e301..caf9a286c 100644 --- a/lib/sessions/backend/ticket_overview_index.rb +++ b/lib/sessions/backend/ticket_overview_index.rb @@ -1,5 +1,4 @@ module Sessions::Backend::TicketOverviewIndex - @@last_change = {} def self.worker( user, worker ) cache_key = 'user_' + user.id.to_s + '_overview' @@ -22,8 +21,8 @@ module Sessions::Backend::TicketOverviewIndex def self.push( user, client ) cache_key = 'user_' + user.id.to_s + '_overview' overview_time = Sessions::CacheIn.get_time( cache_key, { :ignore_expire => true } ) - if overview_time && @@last_change[ user.id ] != overview_time - @@last_change[ user.id ] = overview_time + if overview_time && client.last_change['overview'] != overview_time + client.last_change['overview'] = overview_time overview = Sessions::CacheIn.get( cache_key, { :ignore_expire => true } ) client.log 'notify', "push overview for user #{user.id}" diff --git a/lib/sessions/backend/ticket_overview_list.rb b/lib/sessions/backend/ticket_overview_list.rb index acf412a2c..50f2edfd0 100644 --- a/lib/sessions/backend/ticket_overview_list.rb +++ b/lib/sessions/backend/ticket_overview_list.rb @@ -1,5 +1,4 @@ module Sessions::Backend::TicketOverviewList - @@last_change = {} def self.worker( user, worker ) overviews = Ticket::Overviews.all( @@ -30,13 +29,13 @@ module Sessions::Backend::TicketOverviewList overviews.each { |overview| cache_key = 'user_' + user.id.to_s + '_overview_data_' + overview.link - if !@@last_change[ user.id ] - @@last_change[ user.id ] = {} + if !client.last_change['overview_list'] + client.last_change['overview_list'] = {} end overview_data_time = Sessions::CacheIn.get_time( cache_key, { :ignore_expire => true } ) - if overview_data_time && @@last_change[ user.id ][overview.link] != overview_data_time - @@last_change[ user.id ][overview.link] = overview_data_time + if overview_data_time && client.last_change['overview_list'][overview.link] != overview_data_time + client.last_change['overview_list'][overview.link] = overview_data_time overview_data = Sessions::CacheIn.get( cache_key, { :ignore_expire => true } ) client.log 'notify', "push overview_data #{overview.link} for user #{user.id}" users = {} diff --git a/lib/sessions/client.rb b/lib/sessions/client.rb index 15ba61076..6c7f24af2 100644 --- a/lib/sessions/client.rb +++ b/lib/sessions/client.rb @@ -1,9 +1,13 @@ class Sessions::Client + + attr_accessor :last_change + def initialize( client_id ) @client_id = client_id @cache_key = '' @data = {} @pushed = {} + @last_change = {} self.log 'notify', "---client start ws connection---" self.fetch self.log 'notify', "---client exiting ws connection---"