module Postqueue::CLI

Attributes

options[R]

Public Instance Methods

active_record_config() click to toggle source
# File lib/postqueue/cli.rb, line 49
def active_record_config
  require "yaml"
  database_config = YAML.load_file "config/database.yml"
  env = ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development"
  database_config.fetch(env)
end
connect_to_database!() click to toggle source
# File lib/postqueue/cli.rb, line 41
def connect_to_database!
  abc = active_record_config
  username, host, database = abc.values_at "username", "host", "database"
  Postqueue.logger.info "Connecting to postgres:#{username}@#{host}/#{database}"

  ActiveRecord::Base.establish_connection(abc)
end
connect_to_rails!() click to toggle source
# File lib/postqueue/cli.rb, line 32
def connect_to_rails!
  if File.exist?("config/environment.rb")
    load "config/environment.rb"
  else
    logger.warn "Trying to load postqueue configuration from config/postqueue.rb"
    load "config/postqueue.rb"
  end
end
run(argv) click to toggle source
# File lib/postqueue/cli.rb, line 12
def run(argv)
  @options = OptionsParser.parse_args(argv)

  case options.sub_command
  when "stats", "peek"
    connect_to_database!
    Stats.send options.sub_command, options
  when "enqueue"
    connect_to_database!
    count = Postqueue.enqueue op: options.op, entity_id: options.entity_ids
    Postqueue.logger.info "Enqueued #{count} queue items"
  when "process"
    connect_to_rails!
    Postqueue.process batch_size: 1
  when "run"
    connect_to_rails!
    Postqueue.run!
  end
end