class SidekiqAdhocJob::ScheduleAdhocJob
Attributes
request_params[R]
worker_keyword_params[R]
worker_klass[R]
worker_klass_inspector[R]
worker_positional_params[R]
Public Class Methods
new(job_name, request_params)
click to toggle source
# File lib/sidekiq_adhoc_job/services/schedule_adhoc_job.rb, line 6 def initialize(job_name, request_params) @request_params = request_params.inject({}) do |acc, (k, v)| acc[k.to_sym] = v acc end @worker_klass = WorkerClassesLoader.find_worker_klass(job_name) @worker_klass_inspector = Utils::ClassInspector.new(worker_klass) parse_params end
Public Instance Methods
call()
click to toggle source
# File lib/sidekiq_adhoc_job/services/schedule_adhoc_job.rb, line 17 def call SidekiqAdhocJob.config.strategy.perform_async(worker_klass, *worker_positional_params, **worker_keyword_params) end
Private Instance Methods
allowed_params()
click to toggle source
# File lib/sidekiq_adhoc_job/services/schedule_adhoc_job.rb, line 37 def allowed_params worker_positional_params + worker_keyword_params end
keyword_params()
click to toggle source
# File lib/sidekiq_adhoc_job/services/schedule_adhoc_job.rb, line 46 def keyword_params worker_klass_inspector.required_kw_parameters(:perform) + worker_klass_inspector.optional_kw_parameters(:perform) end
parse_params()
click to toggle source
# File lib/sidekiq_adhoc_job/services/schedule_adhoc_job.rb, line 25 def parse_params @worker_positional_params = positional_params .reject { |key| request_params[key].empty? } .map { |key| StringUtil.parse(request_params[key], symbolize: true) } @worker_keyword_params = keyword_params .each_with_object({}) { |key, obj| obj[key.to_sym] = request_params[key] } .compact if !!request_params[:rest_args] && !request_params[:rest_args].empty? @worker_positional_params << StringUtil.parse_json(request_params[:rest_args].strip, symbolize: true) end end
positional_params()
click to toggle source
# File lib/sidekiq_adhoc_job/services/schedule_adhoc_job.rb, line 41 def positional_params worker_klass_inspector.required_parameters(:perform) + worker_klass_inspector.optional_parameters(:perform) end