Class: Que::Web

Inherits:
Sinatra::Base
  • Object
show all
Defined in:
lib/que/web.rb

Defined Under Namespace

Modules: Viewmodels Classes: Pager

Constant Summary collapse

PAGE_SIZE =
10
FLASH_KEY =
'que.web.flash'.freeze
SQL =
{
  :dashboard_stats => %{
      SELECT count(*)                    AS total,
             count(locks.job_id)         AS running,
             coalesce(sum((error_count > 0 AND locks.job_id IS NULL)::int), 0) AS failing,
             coalesce(sum((error_count = 0 AND locks.job_id IS NULL)::int), 0) AS scheduled
      FROM que_jobs
      LEFT JOIN (
        SELECT (classid::bigint << 32) + objid::bigint AS job_id
        FROM pg_locks
        WHERE locktype = 'advisory'
      ) locks USING (job_id)
  }.freeze,
  :failing_jobs => %{
      SELECT que_jobs.*
      FROM que_jobs
      LEFT JOIN (
        SELECT (classid::bigint << 32) + objid::bigint AS job_id
        FROM pg_locks
        WHERE locktype = 'advisory'
      ) locks USING (job_id)
      WHERE locks.job_id IS NULL AND error_count > 0
      ORDER BY run_at
      LIMIT $1::int
      OFFSET $2::int
  }.freeze,
  :scheduled_jobs => %{
      SELECT que_jobs.*
      FROM que_jobs
      LEFT JOIN (
        SELECT (classid::bigint << 32) + objid::bigint AS job_id
        FROM pg_locks
        WHERE locktype = 'advisory'
      ) locks USING (job_id)
      WHERE locks.job_id IS NULL AND error_count = 0
      ORDER BY run_at
      LIMIT $1::int
      OFFSET $2::int
  }.freeze,
  :delete_job => %{
      DELETE
      FROM que_jobs
      WHERE job_id = $1::bigint
  }.freeze,
  :reschedule_job => %{
      UPDATE que_jobs
      SET run_at = $2::timestamptz
      WHERE job_id = $1::bigint
  }.freeze,
  :fetch_job => %{
      SELECT *
      FROM que_jobs
      WHERE job_id = $1::bigint
      LIMIT 1
  }.freeze,
}.freeze

Instance Method Summary collapse

Instance Method Details

#get_pager(record_count) ⇒ Object



83
84
85
86
# File 'lib/que/web.rb', line 83

def get_pager(record_count)
  page = (params[:page] || 1).to_i
  Pager.new(page, PAGE_SIZE, record_count)
end