Class: Gitlab::SidekiqConfig::WorkerMatcher

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/sidekiq_config/worker_matcher.rb

Constant Summary collapse

WILDCARD_MATCH =
'*'
QUERY_OR_OPERATOR =
'|'
QUERY_AND_OPERATOR =
'&'
QUERY_CONCATENATE_OPERATOR =
','
QUERY_TERM_REGEX =
%r{^(\w+)(!?=)([\w:#{QUERY_CONCATENATE_OPERATOR}]+)}
QUERY_PREDICATES =
{
  worker_name: :to_s,
  feature_category: :to_sym,
  has_external_dependencies: lambda { |value| value == 'true' },
  name: :to_s,
  resource_boundary: :to_sym,
  tags: :to_sym,
  urgency: :to_sym
}.freeze
QueryError =
Class.new(StandardError)
InvalidTerm =
Class.new(QueryError)
UnknownOperator =
Class.new(QueryError)
UnknownPredicate =
Class.new(QueryError)

Instance Method Summary collapse

Constructor Details

#initialize(query_string) ⇒ WorkerMatcher

Returns a new instance of WorkerMatcher.



27
28
29
# File 'lib/gitlab/sidekiq_config/worker_matcher.rb', line 27

def initialize(query_string)
  @match_lambda = query_string_to_lambda(query_string)
end

Instance Method Details

#match?(worker_metadata) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/gitlab/sidekiq_config/worker_matcher.rb', line 31

def match?()
  @match_lambda.call()
end