Sha256: 2e4312aaf3888e8b69073df1984e1621b000350a8044bc9804321bd12c4704e5
Contents?: true
Size: 1.23 KB
Versions: 6
Compression:
Stored size: 1.23 KB
Contents
# frozen_string_literal: true module SplitIoClient module SSE module Workers class SplitsWorker def initialize(adapter, config, splits_repository) @adapter = adapter @config = config @splits_repository = splits_repository @queue = Queue.new perform_thread perform_passenger_forked if defined?(PhusionPassenger) end def add_to_queue(change_number) @queue.push(change_number) end def kill_split(change_number, split_name, default_treatment) @splits_repository.kill(change_number, split_name, default_treatment) add_to_queue(change_number) end private def perform while (change_number = @queue.pop) since = @splits_repository.get_change_number @adapter.split_fetcher.fetch_splits unless since >= change_number end end def perform_thread @config.threads[:split_update_worker] = Thread.new do perform end end def perform_passenger_forked PhusionPassenger.on_event(:starting_worker_process) { |forked| perform_thread if forked } end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems