# class DashboardCounter < Resque::Plugins::RestrictionJob # @queue = :high # def self.perform(*args) # site = Site.first # obj = new(*args) # site.dashboard_counter[:visitors_this_week] = obj.display_visitors_this_week # site.dashboard_counter[:visitors_this_month] = obj.display_visitors_this_month # site.dashboard_counter[:visitors_this_year] = obj.display_visitors_this_year # site.save # OrbitLogger.info "DashboardCounter done #{site.dashboard_counter.to_s}" # end # def display_visitors(options={}) # impressions = Impression.where(options).and(:referrer.ne => nil) # impressions.map{|i| i[:session_hash]}.uniq.count # end # def display_visitors_today # display_visitors(created_at: {'$gte' => Date.today.beginning_of_day, '$lte' => Date.today.end_of_day}) # end # def display_visitors_this_week # display_visitors(created_at: {'$gte' => Date.today.beginning_of_week, '$lte' => Date.today.end_of_week}) # end # def display_visitors_this_month # display_visitors(created_at: {'$gte' => Date.today.beginning_of_month, '$lte' => Date.today.end_of_month}) # end # def display_visitors_this_year # display_visitors(created_at: {'$gte' => Date.today.beginning_of_year, '$lte' => Date.today.end_of_year}) # end # end