theodi/services-manager

View on GitHub
Rakefile

Summary

Maintainability
Test Coverage
require 'dotenv'
Dotenv.load

require 'resque/tasks'
require 'resque_scheduler/tasks'

task :default => 'resque:setup'

namespace :resque do
  task :setup do
    require 'resque'
    require 'resque_scheduler'
    require 'resque/scheduler'

    raise "Redis configuration not set" unless ENV['RESQUE_REDIS_HOST'] && ENV['RESQUE_REDIS_PORT']
    Resque.redis = Redis.new(
      :host => ENV['RESQUE_REDIS_HOST'],
      :port => ENV['RESQUE_REDIS_PORT'],
      :password => (ENV['RESQUE_REDIS_PASSWORD'].nil? || ENV['RESQUE_REDIS_PASSWORD']=='' ? nil : ENV['RESQUE_REDIS_PASSWORD'])
    )

    require 'open-orgn-services'
    require 'odi-metrics-tasks'

    # Enable job history for some classes
    require 'resque-history'
    [
        CapsuleSyncMonitor,
        SendDirectoryEntryToCapsule,
        PartnerEnquiryProcessor,
        SaveMembershipDetailsToCapsule,
        SaveMembershipIdInCapsule,
        SendSignupToCapsule,
        SyncCapsuleData,
        OrderMonitor,
        SignupProcessor,
        Invoicer,
        SyncMailingList,
        UpdateMailingList
    ].each do |klazz|
      klazz.class_eval do
        extend Resque::Plugins::History
      end
    end

    # Set up failure notifications
    require 'resque/failure/redis'
    require 'resque/failure/airbrake'
    require 'resque/failure/multiple'
    if ENV['AIRBRAKE_SERVICES_KEY']
      Resque::Failure::Multiple.classes = [Resque::Failure::Redis, Resque::Failure::Airbrake]
      Resque::Failure.backend = Resque::Failure::Multiple
      Airbrake.configure do |config|
        config.api_key = ENV['AIRBRAKE_SERVICES_KEY']
      end
    else
      Resque::Failure.backend = Resque::Failure::Redis
    end

    # Load schedule
    Resque::Scheduler.dynamic = true
    Resque.schedule = YAML.load_file('config/schedule.yml')
  end
end