Module: Jenode

Defined in:
lib/jenode.rb,
lib/jenode/job.rb,
lib/jenode/email.rb,
lib/jenode/worker.rb,
lib/jenode/email_task.rb

Defined Under Namespace

Classes: Email, EmailTask, Job, Worker

Class Method Summary collapse

Class Method Details

.run(options = {}) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/jenode.rb', line 30

def run(options = {})
  threads = []
  $queue_connection = MarchHare.connect(
    host:     options[:queue_address],
    user:     options[:queue_user],
    password: options[:queue_password],
    vhost:    ENV['APP_ENV']
  )

  options[:ips].each do |ip|
    options[:threads_per_ip].times do |i|
      thread = Thread.start do
        worker = Jenode::Worker.new('email_to_send.empty', ip, i, options[:prefetch])
        worker.run
      end

      threads.push(thread)
    end
  end

  threads.each(&:join)
end