pyfarm.models.jobqueue module¶
Job Queue Model¶
Model for job queues
-
class
pyfarm.models.jobqueue.
JobQueue
(**kwargs)[source]¶ Bases:
flask_sqlalchemy.Model
,pyfarm.models.core.mixins.UtilityMixins
,pyfarm.models.core.mixins.ReprMixin
Stores information about a job queue. Used for flexible, configurable distribution of computing capacity to jobs.
-
REPR_COLUMNS
= ('id', 'name')¶
-
children
¶
-
fullpath
¶ The path of this jobqueue. This column is a database denormalization. It is technically redundant, but faster to access than recursively querying all parent queues. If set to NULL, the path must be computed by recursively querying the parent queues.
-
id
¶ Provides an id for the current row. This value should never be directly relied upon and it’s intended for use by relationships.
-
jobs
¶
-
maximum_agents
¶ The scheduler will never assign more than this number of agents to jobs in or below this queue.
-
minimum_agents
¶ The scheduler will try to assign at least this number of agents to jobs in or below this queue as long as it can use them, before any other considerations.
-
name
¶
-
parent
¶ Relationship between this queue its parent
-
parent_jobqueue_id
¶ The parent queue of this queue. If NULL, this is a top level queue.
-
priority
¶ The priority of this job queue. The scheduler will not assign any nodes to other job queues or jobs with the same parent and a lower priority as long as this one can still use nodes. The minimum_agents column takes precedence over this.
-
weight
¶ The weight of this job queue. The scheduler will distribute available agents between jobs and job queues in the same queue in proportion to their weights.
-
-
pyfarm.models.jobqueue.
asc
(column)¶ Produce an ascending
ORDER BY
clause element.e.g.:
from sqlalchemy import asc stmt = select([users_table]).order_by(asc(users_table.c.name))
will produce SQL as:
SELECT id, name FROM user ORDER BY name ASC
The
asc()
function is a standalone version of theColumnElement.asc()
method available on all SQL expressions, e.g.:stmt = select([users_table]).order_by(users_table.c.name.asc())
Parameters: column – A ColumnElement
(e.g. scalar SQL expression) with which to apply theasc()
operation.
-
pyfarm.models.jobqueue.
desc
(column)¶ Produce a descending
ORDER BY
clause element.e.g.:
from sqlalchemy import desc stmt = select([users_table]).order_by(desc(users_table.c.name))
will produce SQL as:
SELECT id, name FROM user ORDER BY name DESC
The
desc()
function is a standalone version of theColumnElement.desc()
method available on all SQL expressions, e.g.:stmt = select([users_table]).order_by(users_table.c.name.desc())
Parameters: column – A ColumnElement
(e.g. scalar SQL expression) with which to apply thedesc()
operation.
-
pyfarm.models.jobqueue.
distinct
(expr)¶ Produce an column-expression-level unary
DISTINCT
clause.This applies the
DISTINCT
keyword to an individual column expression, and is typically contained within an aggregate function, as in:from sqlalchemy import distinct, func stmt = select([func.count(distinct(users_table.c.name))])
The above would produce an expression resembling:
SELECT COUNT(DISTINCT name) FROM user
The
distinct()
function is also available as a column-level method, e.g.ColumnElement.distinct()
, as in:stmt = select([func.count(users_table.c.name.distinct())])
The
distinct()
operator is different from theSelect.distinct()
method ofSelect
, which produces aSELECT
statement withDISTINCT
applied to the result set as a whole, e.g. aSELECT DISTINCT
expression. See that method for further information.See also
ColumnElement.distinct()
Select.distinct()
func
-
pyfarm.models.jobqueue.
or_
(*clauses)¶ Produce a conjunction of expressions joined by
OR
.E.g.:
from sqlalchemy import or_ stmt = select([users_table]).where( or_( users_table.c.name == 'wendy', users_table.c.name == 'jack' ) )
The
or_()
conjunction is also available using the Python|
operator (though note that compound expressions need to be parenthesized in order to function with Python operator precedence behavior):stmt = select([users_table]).where( (users_table.c.name == 'wendy') | (users_table.c.name == 'jack') )
See also