Sha256: 7dfdceac0097e1a9440ac74fd50bd392c00e2501043544890c8a84aba1663e63
Contents?: true
Size: 877 Bytes
Versions: 2
Compression:
Stored size: 877 Bytes
Contents
# frozen_string_literal: true require_relative 'periodic_sync' module Prefab class EvaluatedKeysAggregator include Prefab::PeriodicSync attr_reader :data def initialize(client:, max_keys:, sync_interval:) @max_keys = max_keys @client = client @name = 'evaluated_keys_aggregator' @data = Concurrent::Set.new start_periodic_sync(sync_interval) end def push(key) return if @data.size >= @max_keys @data.add(key) end private def flush(to_ship, _) @pool.post do log_internal "Uploading evaluated keys for #{to_ship.size}" keys = PrefabProto::EvaluatedKeys.new(keys: to_ship.to_a, namespace: @client.namespace) result = @client.post('/api/v1/evaluated-keys', keys) log_internal "Uploaded #{to_ship.size} keys: #{result.status}" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
prefab-cloud-ruby-0.24.5 | lib/prefab/evaluated_keys_aggregator.rb |
prefab-cloud-ruby-0.24.4 | lib/prefab/evaluated_keys_aggregator.rb |