Class: Clusters::AgentTokens::TrackUsageService

Inherits:
Object
  • Object
show all
Defined in:
app/services/clusters/agent_tokens/track_usage_service.rb

Constant Summary collapse

UPDATE_USED_COLUMN_EVERY =

The ‘UPDATE_USED_COLUMN_EVERY` defines how often the token DB entry can be updated

(40.minutes..55.minutes)

Instance Method Summary collapse

Constructor Details

#initialize(token) ⇒ TrackUsageService

Returns a new instance of TrackUsageService.



11
12
13
# File 'app/services/clusters/agent_tokens/track_usage_service.rb', line 11

def initialize(token)
  @token = token
end

Instance Method Details

#executeObject



15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/services/clusters/agent_tokens/track_usage_service.rb', line 15

def execute
  track_values = { last_used_at: Time.current.utc }

  token.cache_attributes(track_values)

  if can_update_track_values?
    log_activity_event!(track_values[:last_used_at]) unless agent.connected?

    # Use update_column so updated_at is skipped
    token.update_columns(track_values)
  end
end