509 |
509 |
self.queue = queue
|
510 |
510 |
|
511 |
511 |
|
512 |
|
class JobQueue(object):
|
513 |
|
"""Queue used to manage the jobs.
|
|
512 |
def _RequireOpenQueue(fn):
|
|
513 |
"""Decorator for "public" functions.
|
514 |
514 |
|
515 |
|
@cvar _RE_JOB_FILE: regex matching the valid job file names
|
|
515 |
This function should be used for all 'public' functions. That is,
|
|
516 |
functions usually called from other classes. Note that this should
|
|
517 |
be applied only to methods (not plain functions), since it expects
|
|
518 |
that the decorated function is called with a first argument that has
|
|
519 |
a '_queue_lock' argument.
|
516 |
520 |
|
517 |
|
"""
|
518 |
|
_RE_JOB_FILE = re.compile(r"^job-(%s)$" % constants.JOB_ID_TEMPLATE)
|
|
521 |
@warning: Use this decorator only after utils.LockedMethod!
|
519 |
522 |
|
520 |
|
def _RequireOpenQueue(fn):
|
521 |
|
"""Decorator for "public" functions.
|
|
523 |
Example::
|
|
524 |
@utils.LockedMethod
|
|
525 |
@_RequireOpenQueue
|
|
526 |
def Example(self):
|
|
527 |
pass
|
522 |
528 |
|
523 |
|
This function should be used for all 'public' functions. That is,
|
524 |
|
functions usually called from other classes.
|
|
529 |
"""
|
|
530 |
def wrapper(self, *args, **kwargs):
|
|
531 |
assert self._queue_lock is not None, "Queue should be open"
|
|
532 |
return fn(self, *args, **kwargs)
|
|
533 |
return wrapper
|
525 |
534 |
|
526 |
|
@warning: Use this decorator only after utils.LockedMethod!
|
527 |
535 |
|
528 |
|
Example::
|
529 |
|
@utils.LockedMethod
|
530 |
|
@_RequireOpenQueue
|
531 |
|
def Example(self):
|
532 |
|
pass
|
|
536 |
class JobQueue(object):
|
|
537 |
"""Queue used to manage the jobs.
|
533 |
538 |
|
534 |
|
"""
|
535 |
|
def wrapper(self, *args, **kwargs):
|
536 |
|
assert self._queue_lock is not None, "Queue should be open"
|
537 |
|
return fn(self, *args, **kwargs)
|
538 |
|
return wrapper
|
|
539 |
@cvar _RE_JOB_FILE: regex matching the valid job file names
|
|
540 |
|
|
541 |
"""
|
|
542 |
_RE_JOB_FILE = re.compile(r"^job-(%s)$" % constants.JOB_ID_TEMPLATE)
|
539 |
543 |
|
540 |
544 |
def __init__(self, context):
|
541 |
545 |
"""Constructor for JobQueue.
|