Class: Que::Web
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- Que::Web
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,\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: <<-SQL.freeze,\n DELETE\n FROM que_jobs\n WHERE job_id = $1::bigint\n AND pg_try_advisory_lock(job_id)\n RETURNING pg_advisory_unlock(job_id)\n SQL\n reschedule_job: <<-SQL.freeze,\n UPDATE que_jobs\n SET run_at = $2::timestamptz\n WHERE job_id = $1::bigint\n AND pg_try_advisory_lock(job_id)\n RETURNING pg_advisory_unlock(job_id)\n 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
95
96
97
98
|
# File 'lib/que/web.rb', line 95
def (record_count)
page = (params[:page] || 1).to_i
.new(page, PAGE_SIZE, record_count)
end
|
#search ⇒ Object
100
101
102
103
|
# File 'lib/que/web.rb', line 100
def search
return '%' unless search_param.present?
"%#{search_param}%"
end
|
#search_param ⇒ Object
110
111
112
113
|
# File 'lib/que/web.rb', line 110
def search_param
return unless params['search'].present?
params['search'].gsub(/[^0-9A-Za-z:]/, '')
end
|
#search_running(jobs) ⇒ Object
105
106
107
108
|
# File 'lib/que/web.rb', line 105
def search_running(jobs)
return jobs unless search_param.present?
jobs.select { |job| job.job_class.include? search_param }
end
|