Module: ParallelWorkforce::Job::Util::JobHelper

Included in:
ActiveJob, Sidekiq
Defined in:
lib/parallel_workforce/job/util/job_helper.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



5
6
7
# File 'lib/parallel_workforce/job/util/job_helper.rb', line 5

def self.included(klass)
  klass.extend(ClassMethods)
end

Instance Method Details

#invoke_performer(args) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/parallel_workforce/job/util/job_helper.rb', line 32

def invoke_performer(args)
  args.transform_keys!(&:to_sym)

  serialized_actor_args = ParallelWorkforce.configuration.redis_connector.with do |redis|
    serialized_actor_args_key = self.class.build_serialized_actor_args_key(args[:result_key], args[:index])

    redis.getset(serialized_actor_args_key, nil).tap do
      redis.del(serialized_actor_args_key)
    end
  end

  raise "Unable to locate serialized data required for Performer" if serialized_actor_args.nil?

  args[:serialized_actor_args] = serialized_actor_args

  ParallelWorkforce::Job::Util::Performer.new(**args).perform
end

#invoke_performer_with_time_zone_name_and_locale(args) ⇒ Object



50
51
52
53
54
55
56
57
58
# File 'lib/parallel_workforce/job/util/job_helper.rb', line 50

def invoke_performer_with_time_zone_name_and_locale(args)
  args.transform_keys!(&:to_sym)

  Time.use_zone(args.delete(:time_zone_name)) do
    I18n.with_locale(args.delete(:locale)) do
      invoke_performer(args)
    end
  end
end