Module: QC::Config

Included in:
QC
Defined in:
lib/queue_classic/config.rb

Instance Method Summary collapse

Instance Method Details

#app_nameObject

You can use the APP_NAME to query for postgres related process information in the pg_stat_activity table.



6
7
8
# File 'lib/queue_classic/config.rb', line 6

def app_name
  @app_name ||= ENV["QC_APP_NAME"] || "queue_classic"
end

#default_queueObject

The default queue used by ‘QC.enqueue`.



29
30
31
# File 'lib/queue_classic/config.rb', line 29

def default_queue
  @default_queue ||= Queue.new(QC.queue)
end

#default_queue=(queue) ⇒ Object



33
34
35
# File 'lib/queue_classic/config.rb', line 33

def default_queue=(queue)
  @default_queue = queue
end

#default_worker_classObject

The worker class instantiated by QC’s rake tasks.



60
61
62
63
64
65
# File 'lib/queue_classic/config.rb', line 60

def default_worker_class

  @worker_class ||= (ENV["QC_DEFAULT_WORKER_CLASS"] && Kernel.const_get(ENV["QC_DEFAULT_WORKER_CLASS"]) ||
                     QC::Worker)

end

#default_worker_class=(worker_class) ⇒ Object



67
68
69
# File 'lib/queue_classic/config.rb', line 67

def default_worker_class=(worker_class)
  @worker_class = worker_class
end

#fork_worker?Boolean

Set this variable if you wish for the worker to fork a UNIX process for each locked job. Remember to re-establish any database connections. See the worker for more details.

Returns:

  • (Boolean)


55
56
57
# File 'lib/queue_classic/config.rb', line 55

def fork_worker?
  @fork_worker ||= (!ENV["QC_FORK_WORKER"].nil?)
end

#queueObject



24
25
26
# File 'lib/queue_classic/config.rb', line 24

def queue
  @queue = ENV["QUEUE"] || "default"
end

#queuesObject

Each row in the table will have a column that notes the queue. You can point your workers at different queues.



40
41
42
# File 'lib/queue_classic/config.rb', line 40

def queues
  @queues ||= (ENV["QUEUES"] && ENV["QUEUES"].split(",").map(&:strip)) || []
end

#reset_configObject

reset memoized configuration



72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/queue_classic/config.rb', line 72

def reset_config
  # TODO: we might want to think about storing these in a Hash.
  @app_name = nil
  @wait_time = nil
  @table_name = nil
  @queue = nil
  @default_queue = nil
  @queues = nil
  @top_bound = nil
  @fork_worker = nil
  @worker_class = nil
end

#table_nameObject

Why do you want to change the table name? Just deal with the default OK? If you do want to change this, you will need to update the PL/pgSQL lock_head() function. Come on. Don’t do it.… Just stick with the default.



20
21
22
# File 'lib/queue_classic/config.rb', line 20

def table_name
  @table_name ||= "queue_classic_jobs"
end

#top_boundObject

Set this to 1 for strict FIFO. There is nothing special about 9.…



46
47
48
# File 'lib/queue_classic/config.rb', line 46

def top_bound
  @top_bound ||= (ENV["QC_TOP_BOUND"] || 9).to_i
end

#wait_timeObject

Number of seconds to block on the listen chanel for new jobs.



11
12
13
# File 'lib/queue_classic/config.rb', line 11

def wait_time
  @wait_time ||= (ENV["QC_LISTEN_TIME"] || 5).to_i
end