Class: Que::Web
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- Que::Web
- 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 |