Class: Statlysis::Count
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from Cron
#multiple_dataset, #source_type, #time_column, #time_unit, #time_zone
Instance Method Summary collapse
-
#initialize(source, opts = {}) ⇒ Count
constructor
A new instance of Count.
-
#run ⇒ Object
设置数据源,并保存结果入数据库.
Methods inherited from Cron
#_source, #is_activerecord?, #is_mongoid?, #is_orm?, #output, #reoutput, #setup_stat_model, #source_where_array, #time_range
Methods included from Common
Constructor Details
#initialize(source, opts = {}) ⇒ Count
Returns a new instance of Count.
5 6 7 8 9 10 |
# File 'lib/statlysis/cron/count.rb', line 5 def initialize source, opts = {} super Statlysis.check_set_database cron.setup_stat_model cron end |
Instance Method Details
#run ⇒ Object
设置数据源,并保存结果入数据库
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/statlysis/cron/count.rb', line 13 def run (logger.info("#{cron.multiple_dataset.name} have no result!"); return false) if cron.output.blank? # delete first in range @output = cron.output unless @output.any? logger.info "没有数据"; return end num_i = 0; num_add = 999 Statlysis.sequel.transaction do cron.stat_model.where("t >= ? AND t <= ?", cron.output[0][:t], cron.output[-1][:t]).delete while !(_a = @output[num_i..(num_i+num_add)]).blank? do # batch insert all cron.stat_model.multi_insert _a num_i += (num_add + 1) end end return self end |