update dashboard for better performance

This commit is contained in:
manson 2014-08-08 14:16:03 +08:00
parent 5f50d59333
commit c2c9bd4682
5 changed files with 22 additions and 33 deletions

View File

@ -4,33 +4,12 @@ class Admin::DashboardsController < ApplicationController
layout "basic_back_end"
def index
apps = ['bulletin', 'page', 'web_link']
apps = ['bulletin', 'page_context', 'web_link']
@module_app_contents, @module_app_contents_total = get_module_app_count(apps)
@recent_updated = get_recently_updated(apps)
@most_visited = get_most_visited(apps)
end
def reload_all_content
@module_app_contents, @module_app_contents_total = get_module_app_count('bulletin', 'page_context', 'web_link')
respond_to do |format|
format.js { render 'reload', locals: {div_id: 'all_content'} }
end
end
def reload_most_visited
@most_visited = get_most_visited('bulletin', 'page_context','page')
respond_to do |format|
format.js { render 'reload', locals: {div_id: 'most_visited'} }
end
end
def reload_recent_update
@recent_updated = get_recently_updated('bulletin', 'page_context', 'web_link')
respond_to do |format|
format.js { render 'reload', locals: {div_id: 'recent_update'} }
end
end
def get_cpu_usage
@usw = Usagewatch
render :js => @usw.uw_cpuused.to_s

View File

@ -117,16 +117,24 @@ module OrbitBackendHelper
end
def get_month_traffic
result = []
(0..30).each do |i|
visits = Impression.where( created_at: {
'$gte' => Time.now.beginning_of_day-i.days,
'$lte' => Time.now.end_of_day-i.days}
).distinct(:request_hash).count
result.push([ Time.now.beginning_of_day-i.days, visits])
end
site = Site.first
if site.month_traffic_cache.blank? or (site.month_traffic_cache['updated_at'] < (Time.now-1.day) rescue true)
site.month_traffic_cache = {}
[:name=> t(:visitors_count),:data=>result]
site.month_traffic_cache['result'] = []
(1..30).each do |i|
visits = Impression.where( created_at: {
'$gte' => Time.now.beginning_of_day-i.days,
'$lte' => Time.now.end_of_day-i.days}
).distinct(:request_hash).count
site.month_traffic_cache['result'].push([ Time.now.beginning_of_day-i.days, visits])
end
site.month_traffic_cache['updated_at'] = Time.now
site.save
end
[:name=> t(:visitors_count),:data=>site.month_traffic_cache['result']]
end
def can_edit_or_delete?(obj)

View File

@ -33,6 +33,8 @@ class Site
field :template, type: String
field :site_token
field :store_confirmation, type: Boolean, default: false
field :month_traffic_cache
mount_uploader :default_image, ImageUploader
mount_uploader :site_logo, ImageUploader

View File

@ -18,7 +18,7 @@ var Gages = { 'CPU':{
'container': 'cpu_usage',
'title': 'CPU Usage',
'fn': 'get_cpu_usage',
'update_interval': 2000,
'update_interval': 3000,
'initialized': false
},
'Mem':{

View File

@ -12,7 +12,7 @@
legend: 'none',
chartArea:{ width: '95%', left: 50, right: 0},
hAxis:{format:'MMM-d',gridlines:{color: '#CCC', count: 31}},
vAxis:{minValue:-100,viewWindowMode: 'maximized'}
vAxis:{minValue:-20,viewWindowMode: 'maximized'}
} %>
</div>
</div>