Module: Disc::Job::ClassMethods

Defined in:
lib/disc.rb

Instance Method Summary collapse

Instance Method Details

#disc(options = {}) ⇒ Object



105
106
107
# File 'lib/disc.rb', line 105

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

#disc_optionsObject



109
110
111
# File 'lib/disc.rb', line 109

def disc_options
  @disc_options ||= {}
end

#disqueObject



97
98
99
# File 'lib/disc.rb', line 97

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

#disque=(disque) ⇒ Object



101
102
103
# File 'lib/disc.rb', line 101

def disque=(disque)
  @disque = disque
end

#enqueue(*args) ⇒ Object



117
118
119
# File 'lib/disc.rb', line 117

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

#enqueue_at(datetime, *args) ⇒ Object



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

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



113
114
115
# File 'lib/disc.rb', line 113

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