name= selector does not appear to work with sidekiq routing rules
Found while trying to route specific queues to new shards to try to mitigate possible incidents, it appears (both empirically live, and in testing) that name= selectors don't work in routing rules. Evidence, from a console in staging:
[ gstg ] production> puts ::Gitlab.config.sidekiq.routing_rules
name=project_import_schedule
name=email_receiver,service_desk_email_receiver
resource_boundary=cpu&urgency=high&tags!=requires_disk_io
resource_boundary=memory
feature_category=global_search&urgency=throttled
resource_boundary!=cpu&urgency=high
resource_boundary=cpu&urgency=default,low
feature_category=database&urgency=throttled
feature_category=gitaly&urgency=throttled
*
default
So project_import_schedule should route to "null" or the per-worker queue. However:
r = Gitlab::SidekiqConfig::WorkerRouter.new(::Gitlab.config.sidekiq.routing_rules)
[ gstg ] production> r.route(ProjectImportScheduleWorker)
=> "default"
But a worker that matches another selector like resource_boundary=memory does route correctly to its per-worker queue:
[ gstg ] production> r.route(DesignManagement::NewVersionWorker)
=> "design_management_new_version"
The specs for WorkerRouter do not test any name= variants.