Class: Que::Web

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

Defined Under Namespace

Modules: Helpers, Viewmodels Classes: Pager

Constant Summary collapse

PAGE_SIZE =
10
FLASH_KEY =
'que.web.flash'.freeze
SQL =
{
  dashboard_stats: "    SELECT count(*)                    AS total,\n           count(locks.job_id)         AS running,\n           coalesce(sum((error_count > 0 AND locks.job_id IS NULL)::int), 0) AS failing,\n           coalesce(sum((error_count = 0 AND locks.job_id IS NULL)::int), 0) AS scheduled\n    FROM que_jobs\n    LEFT JOIN (\n      SELECT (classid::bigint << 32) + objid::bigint AS job_id\n      FROM pg_locks\n      WHERE locktype = 'advisory'\n    ) locks USING (job_id)\n    WHERE\n      job_class LIKE ($1)\n  SQL\n  failing_jobs: <<-SQL.freeze,\n    SELECT que_jobs.*\n    FROM que_jobs\n    LEFT JOIN (\n      SELECT (classid::bigint << 32) + objid::bigint AS job_id\n      FROM pg_locks\n      WHERE locktype = 'advisory'\n    ) locks USING (job_id)\n    WHERE locks.job_id IS NULL AND error_count > 0 AND job_class LIKE ($3)\n    ORDER BY run_at\n    LIMIT $1::int\n    OFFSET $2::int\n  SQL\n  scheduled_jobs: <<-SQL.freeze,\n    SELECT que_jobs.*\n    FROM que_jobs\n    LEFT JOIN (\n      SELECT (classid::bigint << 32) + objid::bigint AS job_id\n      FROM pg_locks\n      WHERE locktype = 'advisory'\n    ) locks USING (job_id)\n    WHERE locks.job_id IS NULL AND error_count = 0 AND job_class LIKE ($3)\n    ORDER BY run_at\n    LIMIT $1::int\n    OFFSET $2::int\n  SQL\n  delete_job: delete_jobs_query(lock_job_sql),\n  delete_all_scheduled_jobs: delete_jobs_query(lock_all_scheduled_jobs_sql),\n  delete_all_failing_jobs: delete_jobs_query(lock_all_failing_jobs_sql),\n  reschedule_job: <<-SQL.freeze,\n    WITH target AS (\#{lock_job_sql})\n    UPDATE que_jobs\n    SET run_at = $2::timestamptz\n    FROM target\n    WHERE target.locked\n    AND target.job_id = que_jobs.job_id\n    RETURNING pg_advisory_unlock(target.job_id)\n  SQL\n  reschedule_all_scheduled_jobs: reschedule_all_jobs_query(lock_all_scheduled_jobs_sql),\n  reschedule_all_failing_jobs: reschedule_all_jobs_query(lock_all_failing_jobs_sql),\n  fetch_job: <<-SQL.freeze,\n    SELECT *\n    FROM que_jobs\n    WHERE job_id = $1::bigint\n    LIMIT 1\n  SQL\n}.freeze\n".freeze,

Instance Method Summary collapse

Instance Method Details

#get_pager(record_count) ⇒ Object



138
139
140
141
# File 'lib/que/web.rb', line 138

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