Class: Timescaledb::Rails::ContinuousAggregate

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
Models::Durationable
Defined in:
lib/timescaledb/rails/models/continuous_aggregate.rb

Overview

:nodoc:

Constant Summary

Constants included from Models::Durationable

Models::Durationable::HOUR_MINUTE_SECOND_REGEX

Instance Method Summary collapse

Methods included from Models::Durationable

#parse_duration

Instance Method Details

#refresh!(start_time = 'NULL', end_time = 'NULL') ⇒ Object

Manually refresh a continuous aggregate.

Parameters:

  • start_time (DateTime) (defaults to: 'NULL')
  • end_time (DateTime) (defaults to: 'NULL')


21
22
23
24
25
# File 'lib/timescaledb/rails/models/continuous_aggregate.rb', line 21

def refresh!(start_time = 'NULL', end_time = 'NULL')
  ::ActiveRecord::Base.connection.execute(
    "CALL refresh_continuous_aggregate('#{view_name}', #{start_time}, #{end_time});"
  )
end

#refresh?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/timescaledb/rails/models/continuous_aggregate.rb', line 45

def refresh?
  refresh_job.present?
end

#refresh_end_offsetString

Returns:

  • (String)


33
34
35
# File 'lib/timescaledb/rails/models/continuous_aggregate.rb', line 33

def refresh_end_offset
  parse_duration(refresh_job.config['end_offset'])
end

#refresh_schedule_intervalString

Returns:

  • (String)


38
39
40
41
42
# File 'lib/timescaledb/rails/models/continuous_aggregate.rb', line 38

def refresh_schedule_interval
  interval = refresh_job.schedule_interval

  interval.is_a?(String) ? parse_duration(interval) : interval.inspect
end

#refresh_start_offsetString

Returns:

  • (String)


28
29
30
# File 'lib/timescaledb/rails/models/continuous_aggregate.rb', line 28

def refresh_start_offset
  parse_duration(refresh_job.config['start_offset'])
end