queue#
- exception Empty#
Bases:
Exception
- exception Busy#
Bases:
Exception
- class HeapSlot(job: _canary.protocols.JobProtocol)#
Bases:
object- cost: float#
- job: JobProtocol#
- resources: list[dict[str, Any]]#
- class ResourceQueue(lock: allocate_lock, resource_pool: ResourcePool, jobs: list[JobProtocol] | None = None)#
Bases:
objectHeap-based resource queue for jobs.
Jobs with largest cost are scheduled first. Respects dependencies and exclusive job semantics. Raises Busy if no job can be run with available resources.
- exclusive_job_id: str | None#
- prepare() None#
Empty method that a subclass can implement
- put(*jobs: JobProtocol) None#
- get() JobProtocol#
- clear(status: str = 'CANCELLED') None#
- done(job: JobProtocol) None#
- cases() list[JobProtocol]#
Return all jobs in queue, busy, and finished.
- pending() list[JobProtocol]#
- status(start: float | None = None) str#
- truncate(items: Iterable[str]) str#