Module: Resque::Scheduler::Server::HelperMethods

Defined in:
lib/resque/scheduler/server.rb

Instance Method Summary collapse

Instance Method Details

#find_job(worker) ⇒ Object



156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# File 'lib/resque/scheduler/server.rb', line 156

def find_job(worker)
  worker = worker.downcase
  results = working_jobs_for_worker(worker)

  dels = delayed_jobs_for_worker(worker)
  results += dels.select do |j|
    j['class'].downcase.include?(worker) &&
      j.merge!('where_at' => 'delayed')
  end

  Resque.queues.each do |queue|
    queued = Resque.peek(queue, 0, Resque.size(queue))
    queued = [queued] unless queued.is_a?(Array)
    results += queued.select do |j|
      j['class'].downcase.include?(worker) &&
        j.merge!('queue' => queue, 'where_at' => 'queued')
    end
  end

  results
end

#format_time(t) ⇒ Object



142
143
144
# File 'lib/resque/scheduler/server.rb', line 142

def format_time(t)
  t.strftime(::Resque::Scheduler::Server::TIMESTAMP_FORMAT)
end

#queue_from_class_name(class_name) ⇒ Object



150
151
152
153
154
# File 'lib/resque/scheduler/server.rb', line 150

def queue_from_class_name(class_name)
  Resque.queue_from_class(
    Resque::Scheduler::Util.constantize(class_name)
  )
end

#rails_env(name) ⇒ Object



220
221
222
# File 'lib/resque/scheduler/server.rb', line 220

def rails_env(name)
  Resque.schedule[name]['rails_env'] || Resque.schedule[name]['env']
end

#schedule_class(config) ⇒ Object



201
202
203
204
205
206
207
# File 'lib/resque/scheduler/server.rb', line 201

def schedule_class(config)
  if config['class'].nil? && !config['custom_job_class'].nil?
    config['custom_job_class']
  else
    config['class']
  end
end

#schedule_interval(config) ⇒ Object



178
179
180
181
182
183
184
185
186
# File 'lib/resque/scheduler/server.rb', line 178

def schedule_interval(config)
  if config['every']
    schedule_interval_every(config['every'])
  elsif config['cron']
    'cron: ' + config['cron'].to_s
  else
    'Not currently scheduled'
  end
end

#schedule_interval_every(every) ⇒ Object



188
189
190
191
192
193
194
195
196
197
198
199
# File 'lib/resque/scheduler/server.rb', line 188

def schedule_interval_every(every)
  every = [*every]
  s = 'every: ' << every.first

  return s unless every.length > 1

  s << ' ('
  meta = every.last.map do |key, value|
    "#{key.to_s.tr('_', ' ')} #{value}"
  end
  s << meta.join(', ') << ')'
end

#scheduled_in_this_env?(name) ⇒ Boolean

Returns:

  • (Boolean)


215
216
217
218
# File 'lib/resque/scheduler/server.rb', line 215

def scheduled_in_this_env?(name)
  return true if rails_env(name).nil?
  rails_env(name).split(/[\s,]+/).include?(Resque::Scheduler.env)
end

#scheduler_template(name) ⇒ Object



209
210
211
212
213
# File 'lib/resque/scheduler/server.rb', line 209

def scheduler_template(name)
  File.read(
    File.expand_path("../server/views/#{name}.erb", __FILE__)
  )
end

#scheduler_view(filename, options = {}, locals = {}) ⇒ Object



224
225
226
227
# File 'lib/resque/scheduler/server.rb', line 224

def scheduler_view(filename, options = {}, locals = {})
  source = File.read(File.join(VIEW_PATH, "#{filename}.erb"))
  erb source, options, locals
end

#show_job_arguments(args) ⇒ Object



146
147
148
# File 'lib/resque/scheduler/server.rb', line 146

def show_job_arguments(args)
  Array(args).map(&:inspect).join("\n")
end