Sha256: 411e78fcb78984e1807f12e92bfac6a7257cd113c00af62f268f9c65a90a446b

Contents?: true

Size: 1.63 KB

Versions: 126

Compression:

Stored size: 1.63 KB

Contents

require 'integration_helper'

# Tests deep nesting of batches
# Batches:
# - Overall (Worker 1)
#  - Worker 2
#   - Worker 3
#    - Worker 4

class Worker1
  include Sidekiq::Worker

  def perform
    Sidekiq.logger.info "Work1"
    batch = CanvasSync::JobBatches::Batch.new
    batch.on(:success, Worker2)
    batch.jobs do
      Worker2.perform_async
    end
  end
end

class Worker2
  include Sidekiq::Worker

  def perform
    Sidekiq.logger.info "Work2"
    batch = CanvasSync::JobBatches::Batch.new
    batch.on(:success, Worker3)
    batch.jobs do
      Worker3.perform_async
    end
  end

  def on_success status, opts
    Sidekiq.logger.info "Worker 2 Success"
  end
end

class Worker3
  include Sidekiq::Worker

  def perform
    Sidekiq.logger.info "Work3"
    batch = CanvasSync::JobBatches::Batch.new
    batch.on(:success, Worker4)
    batch.jobs do
      Worker4.perform_async
    end
  end

  def on_success status, opts
    Sidekiq.logger.info "Worker 3 Success"
  end
end

class Worker4
  include Sidekiq::Worker

  def perform
    Sidekiq.logger.info "Work4"
  end

  def on_success status, opts
    Sidekiq.logger.info "Worker 4 Success"
  end
end


class SomeClass
  def on_complete(status, options)
    Sidekiq.logger.info "Overall Complete #{options} #{status.data}"
  end
  def on_success(status, options)
    Sidekiq.logger.info "Overall Success #{options} #{status.data}"
  end
end
batch = CanvasSync::JobBatches::Batch.new
batch.on(:success, SomeClass, 'uid' => 3)
batch.on(:complete, SomeClass, 'uid' => 3)
batch.jobs do
  Worker1.perform_async
end

puts "Overall bid #{batch.bid}"

output, keys = process_tests
overall_tests output, keys

Version data entries

126 entries across 126 versions & 1 rubygems

Version Path
canvas_sync-0.22.9 spec/job_batching/integration/nested.rb
canvas_sync-0.22.8 spec/job_batching/integration/nested.rb
canvas_sync-0.22.6 spec/job_batching/integration/nested.rb
canvas_sync-0.22.5 spec/job_batching/integration/nested.rb
canvas_sync-0.22.4 spec/job_batching/integration/nested.rb
canvas_sync-0.22.3 spec/job_batching/integration/nested.rb
canvas_sync-0.22.2 spec/job_batching/integration/nested.rb
canvas_sync-0.22.1 spec/job_batching/integration/nested.rb
canvas_sync-0.22.0 spec/job_batching/integration/nested.rb
canvas_sync-0.22.0.beta8 spec/job_batching/integration/nested.rb
canvas_sync-0.22.0.beta7 spec/job_batching/integration/nested.rb
canvas_sync-0.22.0.beta6 spec/job_batching/integration/nested.rb
canvas_sync-0.22.0.beta5 spec/job_batching/integration/nested.rb
canvas_sync-0.22.0.beta4 spec/job_batching/integration/nested.rb
canvas_sync-0.22.0.beta3 spec/job_batching/integration/nested.rb
canvas_sync-0.22.0.beta2 spec/job_batching/integration/nested.rb
canvas_sync-0.22.0.beta1 spec/job_batching/integration/nested.rb
canvas_sync-0.21.1 spec/job_batching/integration/nested.rb
canvas_sync-0.21.1.beta1 spec/job_batching/integration/nested.rb
canvas_sync-0.21.0 spec/job_batching/integration/nested.rb