Module: Legion::Gaia::TrackerPersistence
- Defined in:
- lib/legion/gaia/tracker_persistence.rb
Constant Summary collapse
- FLUSH_INTERVAL =
5 minutes
300
Class Method Summary collapse
- .flush_all(store: nil) ⇒ Object
- .flush_dirty(store: nil) ⇒ Object
- .hydrate_all(store: nil) ⇒ Object
- .last_flush_at ⇒ Object
- .register_tracker(name, tracker:, tags:) ⇒ Object
- .registered_trackers ⇒ Object
- .reset! ⇒ Object
- .should_flush? ⇒ Boolean
Class Method Details
.flush_all(store: nil) ⇒ Object
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/legion/gaia/tracker_persistence.rb', line 33 def flush_all(store: nil) return unless store registered_trackers.each_value do |entry| flush_tracker(entry[:tracker], store: store) end @last_flush_at = Time.now.utc rescue StandardError => e Legion::Logging.warn "TrackerPersistence flush_all error: #{e.}" if defined?(Legion::Logging) end |
.flush_dirty(store: nil) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/legion/gaia/tracker_persistence.rb', line 19 def flush_dirty(store: nil) return unless store registered_trackers.each_value do |entry| tracker = entry[:tracker] next unless tracker.dirty? flush_tracker(tracker, store: store) end @last_flush_at = Time.now.utc rescue StandardError => e Legion::Logging.warn "TrackerPersistence flush_dirty error: #{e.}" if defined?(Legion::Logging) end |
.hydrate_all(store: nil) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/legion/gaia/tracker_persistence.rb', line 44 def hydrate_all(store: nil) return unless store registered_trackers.each_value do |entry| entry[:tracker].from_apollo(store: store) end rescue StandardError => e Legion::Logging.warn "TrackerPersistence hydrate error: #{e.}" if defined?(Legion::Logging) end |
.last_flush_at ⇒ Object
54 55 56 |
# File 'lib/legion/gaia/tracker_persistence.rb', line 54 def last_flush_at @last_flush_at end |
.register_tracker(name, tracker:, tags:) ⇒ Object
10 11 12 13 |
# File 'lib/legion/gaia/tracker_persistence.rb', line 10 def register_tracker(name, tracker:, tags:) @trackers ||= {} @trackers[name] = { tracker: tracker, tags: } end |
.registered_trackers ⇒ Object
15 16 17 |
# File 'lib/legion/gaia/tracker_persistence.rb', line 15 def registered_trackers @trackers || {} end |
.reset! ⇒ Object
64 65 66 67 |
# File 'lib/legion/gaia/tracker_persistence.rb', line 64 def reset! @trackers = {} @last_flush_at = nil end |
.should_flush? ⇒ Boolean
58 59 60 61 62 |
# File 'lib/legion/gaia/tracker_persistence.rb', line 58 def should_flush? return true if @last_flush_at.nil? (Time.now.utc - @last_flush_at) >= FLUSH_INTERVAL end |