system preference
This commit is contained in:
		
							parent
							
								
									62fa589e8a
								
							
						
					
					
						commit
						b198b1a17b
					
				| 
						 | 
					@ -14,6 +14,13 @@ class Admin::SitesController < OrbitBackendController
 | 
				
			||||||
  #   @site = Site.new
 | 
					  #   @site = Site.new
 | 
				
			||||||
  # end
 | 
					  # end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def show_system_preference
 | 
				
			||||||
 | 
					    @git_commit_list_file = File.new(OrbitSystemPreference::GitCommitListPath, "r") rescue nil
 | 
				
			||||||
 | 
					    @db_backup_list_file = File.new(OrbitSystemPreference::ArchiveDbListPath, "r") rescue nil
 | 
				
			||||||
 | 
					    @resque_logs_file = File.new(OrbitSystemPreference::ResqueLogFile, "r") rescue nil
 | 
				
			||||||
 | 
					    @site = Site.first
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def update
 | 
					  def update
 | 
				
			||||||
    @site.update_attributes(params[:site])
 | 
					    @site.update_attributes(params[:site])
 | 
				
			||||||
    site_restart
 | 
					    site_restart
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,9 +5,13 @@ class BackupServer
 | 
				
			||||||
    #CronMail.time_check("Going to backup Orbit").deliver
 | 
					    #CronMail.time_check("Going to backup Orbit").deliver
 | 
				
			||||||
    dbhost = Mongoid.config.database.connection.primary.join ':'
 | 
					    dbhost = Mongoid.config.database.connection.primary.join ':'
 | 
				
			||||||
    dbname = Mongoid.config.database.name
 | 
					    dbname = Mongoid.config.database.name
 | 
				
			||||||
 | 
					    archive_db_list_path = OrbitSystemPreference::ArchiveDbListPath
 | 
				
			||||||
    dbdirectory = "#{Rails.root}/tmp/#{dbname}-"+Time.now.strftime("%Y-%m-%d-%H-%M")
 | 
					    dbdirectory = "#{Rails.root}/tmp/#{dbname}-"+Time.now.strftime("%Y-%m-%d-%H-%M")
 | 
				
			||||||
    %x[mongodump -h #{dbhost} -d #{dbname} -o #{dbdirectory} ]
 | 
					    %x[mongodump -h #{dbhost} -d #{dbname} -o #{dbdirectory} ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # %x[touch  #{Rails.root}/tmp/restart]
 | 
					    %x[rm #{archive_db_list_path}]
 | 
				
			||||||
 | 
					    %x[ls #{Rails.root}/tmp/#{dbname}* | du -h --max-depth=1 --block-size=1M |sort -h >> #{archive_db_list_path}]
 | 
				
			||||||
 | 
					    OrbitJobLogger.info "DB backup done Path:#{dbdirectory}"
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					    OrbitJobLogger.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
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,46 @@
 | 
				
			||||||
 | 
					class GenerateSystemSummary
 | 
				
			||||||
 | 
					  @queue = :high
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def self.perform()
 | 
				
			||||||
 | 
					    @site = Site.first
 | 
				
			||||||
 | 
					    get_disk_free
 | 
				
			||||||
 | 
					    get_git_log_list
 | 
				
			||||||
 | 
					    get_package_info
 | 
				
			||||||
 | 
					    @site.save
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def self.get_package_info
 | 
				
			||||||
 | 
					    @info = {}
 | 
				
			||||||
 | 
					    get_nginx_version
 | 
				
			||||||
 | 
					    get_MongoDB_version
 | 
				
			||||||
 | 
					    get_Linux_version
 | 
				
			||||||
 | 
					    @site.system_package_info = @info
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def self.get_git_log_list
 | 
				
			||||||
 | 
					    git_commit_list_path = OrbitSystemPreference::GitCommitListPath
 | 
				
			||||||
 | 
					    %x[rm #{git_commit_list_path}]
 | 
				
			||||||
 | 
					    %x[cd #{Rails.root};#{OrbitSystemPreference::GitLogCommend} >>#{git_commit_list_path} ]
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def self.get_disk_free
 | 
				
			||||||
 | 
					    @site.disk_space= %x[#{OrbitSystemPreference::DiskFree}]
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def self.get_nginx_version
 | 
				
			||||||
 | 
					    @info[:nginx] = %x[#{OrbitSystemPreference::SystemPackage::NginxVersion} ]
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def self.get_MongoDB_version
 | 
				
			||||||
 | 
					    @info[:mongodb] = %x[#{OrbitSystemPreference::SystemPackage::MongodbVersion} ]
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def self.get_Linux_version
 | 
				
			||||||
 | 
					    @info[:linux] = %x[#{OrbitSystemPreference::SystemPackage::SystemVersion} ]
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def self.check_system_has_enough_space( limit =OrbitSystemPreference::DefaultDiskSpaceLimit )
 | 
				
			||||||
 | 
					    binding.pry
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
| 
						 | 
					@ -1,21 +0,0 @@
 | 
				
			||||||
class NccuCalendar 
 | 
					 | 
				
			||||||
  require 'open-uri'
 | 
					 | 
				
			||||||
  require 'tempfile'  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  @queue = :high
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def self.perform()
 | 
					 | 
				
			||||||
  # temp_file = Tempfile.new('new_cal')  
 | 
					 | 
				
			||||||
  # open('http://events.nccu.edu.tw/Month').read{|data|
 | 
					 | 
				
			||||||
  #   temp_file << data
 | 
					 | 
				
			||||||
  # }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
open(File.join(Rails.root, 'public/static', 'nccu_calendar.xml'), 'wb') do |fo|
 | 
					 | 
				
			||||||
  fo.print open('http://events.nccu.edu.tw/Month').read
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   # FileUtils.mv(temp_file, File.join(Rails.root, 'public/static', 'nccu_calendar.xml'))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    puts "[#{ DateTime.now.strftime("%Y %D %H:%M")}]NccuCalendar Synced #{File.join(Rails.root, 'public/static', 'nccu_calendar.xml')}"
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,25 +0,0 @@
 | 
				
			||||||
class SyncDb 
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  @queue = :high
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def self.perform()
 | 
					 | 
				
			||||||
    puts "[ #{DateTime.now.strftime("%Y %D %H:%M") }]\t SyncDb Starting"
 | 
					 | 
				
			||||||
    self.start_sync
 | 
					 | 
				
			||||||
    self.set_admin
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  def self.start_sync
 | 
					 | 
				
			||||||
    task = 'mid_site:sync'
 | 
					 | 
				
			||||||
    args = []
 | 
					 | 
				
			||||||
    %x[rake #{task} --trace  >> #{Rails.root}/log/rake.log]
 | 
					 | 
				
			||||||
    User.all.each{|ur| ur.create_dept_cache}
 | 
					 | 
				
			||||||
    puts "[#{ DateTime.now.strftime("%Y %D %H:%M")}]\tSyncDb Synced"
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def self.set_admin
 | 
					 | 
				
			||||||
    task = 'mid_site:install_admin'
 | 
					 | 
				
			||||||
    args = []
 | 
					 | 
				
			||||||
    %x[rake #{task} --trace  >> #{Rails.root}/log/rake.log]
 | 
					 | 
				
			||||||
    puts "[#{ DateTime.now.strftime("%Y %D %H:%M")}]\tAdmin done"
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
| 
						 | 
					@ -5,5 +5,6 @@ class UpdateTagCloud
 | 
				
			||||||
    Tag.all.each do |tag|
 | 
					    Tag.all.each do |tag|
 | 
				
			||||||
      tag.update_attribute(:cloud_view_count, tag.impressionist_count(:created_at.gte => 14.days.ago, :created_at.lte => Time.now))
 | 
					      tag.update_attribute(:cloud_view_count, tag.impressionist_count(:created_at.gte => 14.days.ago, :created_at.lte => Time.now))
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					    OrbitJobLogger.info "UpdateTagCloud Done"
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					@ -19,6 +19,9 @@ class Site
 | 
				
			||||||
  field :dashbroad_allow_visitor, :type => Boolean, :default => false
 | 
					  field :dashbroad_allow_visitor, :type => Boolean, :default => false
 | 
				
			||||||
  field :mail_settings, :type => Hash
 | 
					  field :mail_settings, :type => Hash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  field :disk_space, :type => String
 | 
				
			||||||
 | 
					  field :system_package_info, :type => Hash,:default=>{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  field :school
 | 
					  field :school
 | 
				
			||||||
  field :department
 | 
					  field :department
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,47 @@
 | 
				
			||||||
 | 
					<h1><%= I18n.t("site.system_preference") %></h1>
 | 
				
			||||||
 | 
					<ul class="nav nav-tabs" id="myTab">
 | 
				
			||||||
 | 
					  <li class="active"><a href="#summary"  data-toggle="tab"><%= I18n.t("site.system_preference_.tab_summary") %></a></li>
 | 
				
			||||||
 | 
					  <li><a href="#commits" data-toggle="tab"><%= I18n.t("site.system_preference_.tab_commits") %></a></li>
 | 
				
			||||||
 | 
					  <li><a href="#backups"  data-toggle="tab"><%= I18n.t("site.system_preference_.tab_backups") %></a></li>
 | 
				
			||||||
 | 
					  <li><a href="#resque_logs"  data-toggle="tab"><%= I18n.t("site.system_preference_.tab_logs") %></a></li>
 | 
				
			||||||
 | 
					</ul>
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					<div class="tab-content">
 | 
				
			||||||
 | 
					  <div class="tab-pane  active in" id="summary">
 | 
				
			||||||
 | 
					        <h2><%= I18n.t("site.system_preference_.summary.disk_space") %>:</h2>
 | 
				
			||||||
 | 
					         <%= content_tag :p,@site.disk_space %>
 | 
				
			||||||
 | 
					        <h2><%= I18n.t("site.system_preference_.summary.code_update_at") %>: </h2>
 | 
				
			||||||
 | 
					        <% @site.system_package_info.each do |index,value| %>
 | 
				
			||||||
 | 
					          <h2><%= index.titleize %> <%= I18n.t("site.system_preference_.summary.version") %>:</h2>       
 | 
				
			||||||
 | 
					          <%= content_tag :p,value %>
 | 
				
			||||||
 | 
					        <% end %>
 | 
				
			||||||
 | 
					        <h2><%= I18n.t("site.system_preference_.summary.weekness_report") %>:<%= '' %></h2>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					  <div class="tab-pane" id="commits">
 | 
				
			||||||
 | 
					    <% if @git_commit_list_file %>
 | 
				
			||||||
 | 
					      <% @git_commit_list_file.lines do |line|%>
 | 
				
			||||||
 | 
					        <%= (line + "<br/>").html_safe %>
 | 
				
			||||||
 | 
					      <% end%>
 | 
				
			||||||
 | 
					      <% else %>
 | 
				
			||||||
 | 
					      <div class="well"><%= I18n.t("site.system_preference_.summary.no_data") %></div>
 | 
				
			||||||
 | 
					    <% end %>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					  <div class="tab-pane" id="backups">
 | 
				
			||||||
 | 
					    <%if @db_backup_list_file %>
 | 
				
			||||||
 | 
					      <% @db_backup_list_file.lines do |line|%>
 | 
				
			||||||
 | 
					        <%=(line + "<br/>").html_safe %>
 | 
				
			||||||
 | 
					      <% end %>
 | 
				
			||||||
 | 
					      <% else %>
 | 
				
			||||||
 | 
					        <div class="well"><%= I18n.t("site.system_preference_.summary.no_data") %></div>
 | 
				
			||||||
 | 
					    <% end %>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					  <div class="tab-pane" id="resque_logs">
 | 
				
			||||||
 | 
					  <%if @db_backup_list_file %>
 | 
				
			||||||
 | 
					    <% @resque_logs_file.lines do |line|%>
 | 
				
			||||||
 | 
					      <%=(line + "<br/>").html_safe %>
 | 
				
			||||||
 | 
					    <% end if @resque_logs_file%>
 | 
				
			||||||
 | 
					    <%else %>
 | 
				
			||||||
 | 
					          <div class="well"><%= I18n.t("site.system_preference_.summary.no_data") %></div>
 | 
				
			||||||
 | 
					    <% end %>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
| 
						 | 
					@ -6,3 +6,4 @@ YAML::ENGINE.yamler = 'syck'
 | 
				
			||||||
# Initialize the rails application
 | 
					# Initialize the rails application
 | 
				
			||||||
Orbit::Application.initialize!
 | 
					Orbit::Application.initialize!
 | 
				
			||||||
Me = Site.first
 | 
					Me = Site.first
 | 
				
			||||||
 | 
					OrbitJobLogger = OrbitJobLog.new
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					module OrbitSystemPreference
 | 
				
			||||||
 | 
					  ArchiveDbListPath = "#{Rails.root}/log/archive_db.list.log"
 | 
				
			||||||
 | 
					  GitCommitListPath = "#{Rails.root}/log/git_commit.list.log"
 | 
				
			||||||
 | 
					  ResqueLogFile ="#{Rails.root}/log/orbit_job.log"
 | 
				
			||||||
 | 
					  GitLogCommend = 'git log --pretty=format:"%x09%ad%x09%s" --date=short'
 | 
				
			||||||
 | 
					  DiskFree= 'df -h /'
 | 
				
			||||||
 | 
					  DefaultDiskSpaceLimit = 3 #in GB
 | 
				
			||||||
 | 
					  module SystemPackage
 | 
				
			||||||
 | 
					    MongodbVersion = "mongod --version"
 | 
				
			||||||
 | 
					    NginxVersion = "nginx -V"
 | 
				
			||||||
 | 
					    SystemVersion = "uname -a"
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
| 
						 | 
					@ -389,6 +389,18 @@ en:
 | 
				
			||||||
    search_help: Please Enter the search argument for Google search.
 | 
					    search_help: Please Enter the search argument for Google search.
 | 
				
			||||||
    settings: Site setting
 | 
					    settings: Site setting
 | 
				
			||||||
    sub_menu: Site sub-menu
 | 
					    sub_menu: Site sub-menu
 | 
				
			||||||
 | 
					    system_preference: System Preference
 | 
				
			||||||
 | 
					    system_preference_:
 | 
				
			||||||
 | 
					      tab_backups: Backups
 | 
				
			||||||
 | 
					      tab_commits: Commits      
 | 
				
			||||||
 | 
					      tab_summary: Summary
 | 
				
			||||||
 | 
					      tab_logs: Logs
 | 
				
			||||||
 | 
					      summary:
 | 
				
			||||||
 | 
					        code_update_at: Code Update histroy
 | 
				
			||||||
 | 
					        disk_space: Disk Free
 | 
				
			||||||
 | 
					        no_data: No Data
 | 
				
			||||||
 | 
					        version: Version
 | 
				
			||||||
 | 
					        weekness_report: Weekness Report
 | 
				
			||||||
    title: Site Title
 | 
					    title: Site Title
 | 
				
			||||||
    title_help: Site Title Guide
 | 
					    title_help: Site Title Guide
 | 
				
			||||||
  site_: Site
 | 
					  site_: Site
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -389,6 +389,18 @@ zh_tw:
 | 
				
			||||||
    search_help: 請輸入送交Google搜尋的參數
 | 
					    search_help: 請輸入送交Google搜尋的參數
 | 
				
			||||||
    settings: 基本設定
 | 
					    settings: 基本設定
 | 
				
			||||||
    sub_menu: 次選單
 | 
					    sub_menu: 次選單
 | 
				
			||||||
 | 
					    system_preference: 系統狀態
 | 
				
			||||||
 | 
					    system_preference_:
 | 
				
			||||||
 | 
					      tab_backups: 備份記錄
 | 
				
			||||||
 | 
					      tab_commits: 程式版本
 | 
				
			||||||
 | 
					      tab_summary: 總覽
 | 
				
			||||||
 | 
					      tab_logs: 登錄檔
 | 
				
			||||||
 | 
					      summary:
 | 
				
			||||||
 | 
					        code_update_at:  程式更新紀錄
 | 
				
			||||||
 | 
					        disk_space: 硬碟空間
 | 
				
			||||||
 | 
					        no_data: 沒有資訊
 | 
				
			||||||
 | 
					        version: 版本
 | 
				
			||||||
 | 
					        weekness_report: 弱點掃瞄資訊
 | 
				
			||||||
    title: 網站標題
 | 
					    title: 網站標題
 | 
				
			||||||
    title_help: 網站標題說明
 | 
					    title_help: 網站標題說明
 | 
				
			||||||
  site_: 網站
 | 
					  site_: 網站
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,14 +1,9 @@
 | 
				
			||||||
#developer pls change here
 | 
					rails_env   = ENV['RAILS_ENV']  || "production"
 | 
				
			||||||
rails_root  = "/home/nccu/stage/NCCU"  #keep this blank when development
 | 
					rails_root  = ENV['RAILS_ROOT'] || File.dirname(__FILE__) + '/..'
 | 
				
			||||||
 | 
					user_home = ENV['HOME'] || File.dirname(__FILE__) + '/../..'
 | 
				
			||||||
 | 
					development_uid = ''
 | 
				
			||||||
 | 
					development_gid = ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
development_uid = 'kaito' #when dev
 | 
					 | 
				
			||||||
development_gid = 'staff' #when dev
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#rails_env   =   "developement"
 | 
					 | 
				
			||||||
rails_env   =   "production"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
development_rails_root  =  File.expand_path("..",File.dirname(__FILE__))
 | 
					 | 
				
			||||||
#rails_root =  (rails_env == 'production' )? production_rails_root : development_rails_root 
 | 
					 | 
				
			||||||
num_workers = rails_env == 'production' ? 5 : 2
 | 
					num_workers = rails_env == 'production' ? 5 : 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
num_workers.times do |num|
 | 
					num_workers.times do |num|
 | 
				
			||||||
| 
						 | 
					@ -16,16 +11,26 @@ num_workers.times do |num|
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    w.dir        = rails_root
 | 
					    w.dir        = rails_root
 | 
				
			||||||
    w.name    = "resque-#{num}"
 | 
					    w.name    = "resque-#{num}"
 | 
				
			||||||
    w.group   = 'resque-stage'
 | 
					    w.group   = 'nccu_production'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    w.interval = 30.seconds
 | 
					    w.interval = 30.seconds
 | 
				
			||||||
    w.env       = {"QUEUE"=>"critical,high,low", "RAILS_ENV"=>rails_env}
 | 
					
 | 
				
			||||||
    w.start     = "rake -f #{rails_root}/Rakefile resque:work  QUEUE=* RAILS_ENV=#{rails_env}"
 | 
					    queue = case num
 | 
				
			||||||
 | 
					        when 0
 | 
				
			||||||
 | 
					                'critical'
 | 
				
			||||||
 | 
					        when 1..2
 | 
				
			||||||
 | 
					                'high,low'
 | 
				
			||||||
 | 
					        when 3..num_workers
 | 
				
			||||||
 | 
					                'low'
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    w.env       = {"QUEUE"=>queue, "RAILS_ENV"=>rails_env}
 | 
				
			||||||
 | 
					    w.start     = "HOME=#{user_home} rake -f #{rails_root}/Rakefile resque:work  QUEUE=* RAILS_ENV=#{rails_env}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    w.uid = (rails_env == 'production' )? "root" : development_uid
 | 
					    w.uid = (rails_env == 'production' )? "root" : development_uid
 | 
				
			||||||
    w.gid = (rails_env == 'production' )? "root" : development_gid
 | 
					    w.gid = (rails_env == 'production' )? "root" : development_gid
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
     w.log = (rails_env == 'production' )? "/var/log/#{w.name}-stage.log":"#{rails_root}/log/#{w.name}.log"
 | 
					     w.log = (rails_env == 'production' )? "/var/log/#{w.group}-#{w.name}":"#{rails_root}/log/dev_resque-#{w.name}.log"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # restart if memory gets too high
 | 
					    # restart if memory gets too high
 | 
				
			||||||
    w.transition(:up, :restart) do |on|
 | 
					    w.transition(:up, :restart) do |on|
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,27 +1,21 @@
 | 
				
			||||||
#developer pls change here
 | 
					rails_env   = ENV['RAILS_ENV']  || "production"
 | 
				
			||||||
rails_root  = "/home/nccu/NCCU/"  #keep this blank when development
 | 
					rails_root  = ENV['RAILS_ROOT'] || File.dirname(__FILE__) + '/..'
 | 
				
			||||||
 | 
					user_home = ENV['HOME'] || File.dirname(__FILE__) + '/../..'
 | 
				
			||||||
development_uid = 'kaito' #when dev
 | 
					development_uid = ''
 | 
				
			||||||
development_gid = 'staff' #when dev
 | 
					development_gid = ''
 | 
				
			||||||
 | 
					 | 
				
			||||||
#rails_env   =   "developement"
 | 
					 | 
				
			||||||
rails_env   =   "production"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
development_rails_root  =  File.expand_path("..",File.dirname(__FILE__))
 | 
					 | 
				
			||||||
#rails_root =  (rails_env == 'production' )? production_rails_root : development_rails_root 
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  God.watch do |w|
 | 
					  God.watch do |w|
 | 
				
			||||||
    w.dir        = rails_root
 | 
					    w.dir        = rails_root
 | 
				
			||||||
    w.name    = "resque-scheduler"
 | 
					    w.name    = "resque-scheduler"
 | 
				
			||||||
    w.group   = 'resque'
 | 
					    w.group   = 'nccu_production'
 | 
				
			||||||
    w.interval = 30.seconds
 | 
					    w.interval = 30.seconds
 | 
				
			||||||
    w.env       = {"QUEUE"=>"critical,high,low", "RAILS_ENV"=>rails_env}
 | 
					    w.env       = {"QUEUE"=>"critical,high,low", "RAILS_ENV"=>rails_env}
 | 
				
			||||||
    w.start     = "rake -f #{rails_root}/Rakefile resque:scheduler RAILS_ENV=#{rails_env}"
 | 
					    w.start     = "HOME= #{user_home} rake -f #{rails_root}/Rakefile resque:scheduler RAILS_ENV=#{rails_env}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    w.uid = (rails_env == 'production' )? "root" : development_uid
 | 
					    w.uid = (rails_env == 'production' )? "root" : development_uid
 | 
				
			||||||
    w.gid = (rails_env == 'production' )? "root" : development_gid
 | 
					    w.gid = (rails_env == 'production' )? "root" : development_gid
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
     w.log = (rails_env == 'production' )? "/var/log/#{w.name}.log":"#{rails_root}/log/#{w.name}.log"
 | 
					     w.log = (rails_env == 'production' )? "/var/log/#{w.group}-#{w.name}.log":"#{rails_root}/log/dev_resque-#{w.name}.log"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # restart if memory gets too high
 | 
					    # restart if memory gets too high
 | 
				
			||||||
    w.transition(:up, :restart) do |on|
 | 
					    w.transition(:up, :restart) do |on|
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
# do_mail_matt:
 | 
					 | 
				
			||||||
#   every: 10s
 | 
					 | 
				
			||||||
#   class: FetchTime
 | 
					 | 
				
			||||||
#   args: 
 | 
					 | 
				
			||||||
#   description: Runs the perform method in FetchTime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
update_tag_cloud:
 | 
					update_tag_cloud:
 | 
				
			||||||
  cron: 0 0 [0,12] * * *
 | 
					  cron: 0 0 [0,12] * * *
 | 
				
			||||||
  class: UpdateTagCloud
 | 
					  class: UpdateTagCloud
 | 
				
			||||||
  args:
 | 
					  args:
 | 
				
			||||||
  description: UpdateTagCloud
 | 
					  description: UpdateTagCloud
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					generate_system_summary:
 | 
				
			||||||
 | 
					  cron: 0 0 12 * * *
 | 
				
			||||||
 | 
					  class: GenerateSystemSummary
 | 
				
			||||||
 | 
					  args:
 | 
				
			||||||
 | 
					  description: Generate the system status such as disk free space,package version list for showing at site tab
 | 
				
			||||||
| 
						 | 
					@ -17,6 +17,7 @@ Orbit::Application.routes.draw do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # routes for admin
 | 
					  # routes for admin
 | 
				
			||||||
  namespace :admin do
 | 
					  namespace :admin do
 | 
				
			||||||
 | 
					    match 'system_preference' => "sites#show_system_preference",:as=>"system_preference"
 | 
				
			||||||
    mount Resque::Server.new, :at => "/resque"
 | 
					    mount Resque::Server.new, :at => "/resque"
 | 
				
			||||||
    resources :assets do   
 | 
					    resources :assets do   
 | 
				
			||||||
      collection do
 | 
					      collection do
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								lib/NewBlog.zip
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/NewBlog.zip
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -0,0 +1,32 @@
 | 
				
			||||||
 | 
					class OrbitJobLog < Logger
 | 
				
			||||||
 | 
					  FORMAT = "%m/%d/%Y  %H:%M%p: "
 | 
				
			||||||
 | 
					  def initialize
 | 
				
			||||||
 | 
					    case Rails.env 
 | 
				
			||||||
 | 
					    when 'production'
 | 
				
			||||||
 | 
					      # Logger::Syslog.new("orbit_routine", Syslog::LOG_LOCAL5)
 | 
				
			||||||
 | 
					      super(Orbit::Application.config.root.to_s+'/log/orbit_job.log','daily')  
 | 
				
			||||||
 | 
					    when 'development'
 | 
				
			||||||
 | 
					      super(Orbit::Application.config.root.to_s+'/log/orbit_job.dev.log','daily')  
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def debug(msg)
 | 
				
			||||||
 | 
					    super(Time.now.strftime()+msg)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def info(msg)
 | 
				
			||||||
 | 
					    super(Time.now.strftime(FORMAT)+msg)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def warn(msg)
 | 
				
			||||||
 | 
					    super(Time.now.strftime(FORMAT)+msg)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def error(msg)
 | 
				
			||||||
 | 
					    super(Time.now.strftime(FORMAT)+msg)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def fatal(msg)
 | 
				
			||||||
 | 
					    super(Time.now.strftime(FORMAT)+msg)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
		Loading…
	
		Reference in New Issue