]>
git.ipfire.org Git - people/jschlag/pbs.git/blob - src/buildservice/jobqueue.py
23f6d4fbbc3ddbd11254cfa192ef038a730c2f09
5 PENDING_STATE
= "pending"
7 class JobQueue(base
.Object
):
9 jobs
= self
.backend
.jobs
._get
_jobs
("SELECT jobs.* FROM jobs_queue queue \
10 LEFT JOIN jobs ON queue.job_id = jobs.id")
15 res
= self
.db
.get("SELECT COUNT(*) AS len FROM jobs_queue")
19 def for_arches(self
, arches
, limit
=None):
20 jobs
= self
.backend
.jobs
._get
_jobs
("SELECT jobs.* FROM jobs_queue queue \
21 LEFT JOIN jobs ON queue.job_id = jobs.id \
22 WHERE jobs.arch = ANY(%s) LIMIT %s", arches
, limit
)
26 def get_length_for_arch(self
, arch
):
27 res
= self
.db
.get("SELECT COUNT(*) AS len FROM jobs_queue queue \
28 LEFT JOIN jobs on queue.job_id = jobs.id \
29 WHERE jobs.arch = %s", arch
)
34 def average_waiting_time(self
):
36 Returns how long the jobs in the queue have been waiting on average
38 res
= self
.db
.get("SELECT AVG(NOW() - COALESCE(jobs.start_not_before, jobs.time_created)) AS avg \
39 FROM jobs_queue queue LEFT JOIN jobs ON queue.job_id = jobs.id")