mattyr/sidecloq

View on GitHub
Rakefile

Summary

Maintainability
Test Coverage
require 'bundler/gem_tasks'
require 'rake/testtask'

Rake::TestTask.new(:test) do |t|
  t.libs << 'test'
  t.libs << 'lib'
  t.test_files = FileList['test/**/test_*.rb']
end

task default: :test

desc 'Run the Sidekiq web interface (w/Sidecloq)'
task :web do
  require 'sidekiq'
  require 'sidecloq'

  Sidekiq.configure_client do |config|
    config.redis = {
      url: 'redis://localhost:6379/0',
      size: 1
    }
  end

  # throw a fake job in
  Sidecloq.configure do |config|
    sched = Sidecloq::Schedule.from_hash({
      my_scheduled_job: {
        class: 'DoWork',
        cron: '* * * * *',
        queue: 'default'
      }
    })
    sched.save_redis
    config[:schedule] = sched
  end

  class DoWork
    include Sidekiq::Worker
  end

  require 'rack/server'
  require 'rack/session/cookie'
  require 'sidekiq/web'
  require 'sidecloq/web'

  Rack::Server.start(
    app: Rack::Session::Cookie.new(
      Sidekiq::Web,
      secret: SecureRandom.hex(32),
      same_site: true,
      max_age: 86400
    )
  )
end