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 ON (que_jobs.id=locks.job_id)\n    WHERE\n      job_class ILIKE ($1)\n      OR que_jobs.args #>> '{0, job_class}' ILIKE ($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 ON (que_jobs.id=locks.job_id)\n    WHERE locks.job_id IS NULL\n      AND error_count > 0\n      AND (\n        job_class ILIKE ($3)\n        OR que_jobs.args #>> '{0, job_class}' ILIKE ($3)\n      )\n    ORDER BY run_at, id\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 ON (que_jobs.id=locks.job_id)\n    WHERE locks.job_id IS NULL\n      AND error_count = 0\n      AND (\n        job_class ILIKE ($3)\n        OR que_jobs.args #>> '{0, job_class}' ILIKE ($3)\n      )\n    ORDER BY run_at, id\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        expired_at = NULL\n    FROM target\n    WHERE target.locked\n    AND target.id = que_jobs.id\n    RETURNING pg_advisory_unlock(target.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 id = $1::bigint\n    LIMIT 1\n  SQL\n}.freeze\n".freeze,

Instance Method Summary collapse

Instance Method Details

#get_pager(record_count) ⇒ Object



134
135
136
137
# File 'lib/que/web.rb', line 134

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