Sha256: 5f3055183b99a13900d0b5638857eadb44886222bae0074d51e74ea975f1aac6

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require_relative 'config/application'
require 'sidekiq/instantly_dead'

Rails.application.load_tasks

namespace :demo do
  task dead: :environment do
    puts '=> Creating sidekiq tasks'

    RetryWorker.perform_async
    DeadInstantlyWorker.perform_async

    run_sidekiq_monitoring
    run_sidekiq_workers
  end

  def run_sidekiq_monitoring
    require 'sidekiq/web'
    Thread.new do
      Rack::Server.start app: Sidekiq::Web, Port: 3000
    end
    sleep 1
    Launchy.open 'http://127.0.0.1:3000/busy?poll=true'
  end

  def run_sidekiq_workers
    require 'sidekiq/cli'
    cli = Sidekiq::CLI.instance

    %w(validate! boot_system).each do |stub|
      cli.define_singleton_method(stub) {}
    end

    cli.send :setup_options, []

    Sidekiq.options[:lifecycle_events][:startup] = [-> {
      Sidekiq.server_middleware do |chain|
        chain.insert_after Sidekiq::Middleware::Server::RetryJobs, Sidekiq::InstantlyDead::Middleware
      end
    }]

    cli.run
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sidekiq-instantly_dead-0.1.0 demo/Rakefile