Module: Disc::Job::ClassMethods

Defined in:
lib/disc.rb

Instance Method Summary collapse

Instance Method Details

#disc(options = {}) ⇒ Object



103
104
105
# File 'lib/disc.rb', line 103

def disc(options = {})
  @disc_options = options
end

#disc_optionsObject



107
108
109
# File 'lib/disc.rb', line 107

def disc_options
  @disc_options ||= {}
end

#disqueObject



95
96
97
# File 'lib/disc.rb', line 95

def disque
  defined?(@disque) ? @disque : Disc.disque
end

#disque=(disque) ⇒ Object



99
100
101
# File 'lib/disc.rb', line 99

def disque=(disque)
  @disque = disque
end

#enqueue(*args) ⇒ Object



115
116
117
# File 'lib/disc.rb', line 115

def enqueue(*args)
  enqueue_at(nil, *args)
end

#enqueue_at(datetime, *args) ⇒ Object



119
120
121
122
123
124
125
126
127
128
129
# File 'lib/disc.rb', line 119

def enqueue_at(datetime, *args)
  disque.push(
    queue,
    {
      class: self.name,
      arguments: args
    }.to_msgpack,
    Disc.disque_timeout,
    delay: datetime.nil? ? nil : (datetime.to_time.to_i - DateTime.now.to_time.to_i)
  )
end

#queueObject



111
112
113
# File 'lib/disc.rb', line 111

def queue
  disc_options.fetch(:queue, 'default')
end