class GnListResolver::ResolverJob
Remote resolution for parallel jobs
Constants
- GRAPHQL
- QUERY
Public Class Methods
new(names, batch_data, data_source_id)
click to toggle source
# File lib/gn_list_resolver/resolver_job.rb, line 8 def initialize(names, batch_data, data_source_id) @names = names @batch_data = batch_data @data_source_id = data_source_id @stats = Stats.new end
Public Instance Methods
run()
click to toggle source
# File lib/gn_list_resolver/resolver_job.rb, line 15 def run res = remote_resolve(@names) [res, @batch_data, @stats] end
Private Instance Methods
remote_resolve(names)
click to toggle source
# File lib/gn_list_resolver/resolver_job.rb, line 28 def remote_resolve(names) batch_start = Time.now res = GRAPHQL.client.query(QUERY, variables: variables(names)) stats_add_batch_time(batch_start) res.data.name_resolver.responses end
stats_add_batch_time(batch_start)
click to toggle source
# File lib/gn_list_resolver/resolver_job.rb, line 35 def stats_add_batch_time(batch_start) @stats.stats[:current_speed] = @names.size / (Time.now - batch_start) @stats.stats[:resolution][:completed_records] = @names.size end
variables(names)
click to toggle source
# File lib/gn_list_resolver/resolver_job.rb, line 22 def variables(names) { dataSourceIds: [@data_source_id], names: names. map { |name| { value: name[:name], suppliedId: name[:id] } } } end