bartender.schedulers.memory#

Attributes#

Classes#

_Job

MemorySchedulerConfig

Configuration for in memory scheduler.

MemoryScheduler

In memory scheduler.

Functions#

_exec(→ None)

_worker(→ None)

Module Contents#

class bartender.schedulers.memory._Job#

Bases: pydantic.BaseModel

description: bartender.schedulers.abstract.JobDescription#
id: str#
state: bartender.db.models.job_model.State#
worker_index: int | None = None#
bartender.schedulers.memory.KILLED_RETURN_CODE = '130'#
async bartender.schedulers.memory._exec(job: _Job) None#
Parameters:

job (_Job) –

Return type:

None

async bartender.schedulers.memory._worker(queue: asyncio.Queue[_Job], jobs: dict[str, _Job], worker_index: int) None#
Parameters:
Return type:

None

class bartender.schedulers.memory.MemorySchedulerConfig#

Bases: pydantic.BaseModel

Configuration for in memory scheduler.

Parameters:

slots – Maximum number of concurrently runnning jobs. Minimum is 1.

type: Literal['memory'] = 'memory'#
slots: pydantic.types.PositiveInt = 1#
class bartender.schedulers.memory.MemoryScheduler(config: MemorySchedulerConfig)#

Bases: bartender.schedulers.abstract.AbstractScheduler

In memory scheduler.

When service is closed any queud or running jobs will disappear.

Parameters:

config (MemorySchedulerConfig) –

queue: asyncio.Queue[_Job]#
jobs: dict[str, _Job]#
workers: list[asyncio.Task[None]] = []#
async close() None#

Cancel all runnning jobs and make scheduler unable to work.

Return type:

None

async submit(description: bartender.schedulers.abstract.JobDescription) str#

Submit a job description for running.

Parameters:

description (bartender.schedulers.abstract.JobDescription) – Description for a job.

Returns:

Identifier that can be used later to interact with job.

Raises:

JobSubmissionError – If job submission failed.

Return type:

str

async state(job_id: str) bartender.db.models.job_model.State#

Get state of a job.

Once job is completed, then scheduler can forget job.

Parameters:

job_id (str) – Identifier of job.

Returns:

State of job.

Return type:

bartender.db.models.job_model.State

async cancel(job_id: str) None#

Cancel a queued or running job.

Once a queued job is cancelled, then the scheduler can forget job.

Parameters:

job_id (str) – Identifier of job.

Return type:

None

__eq__(other: object) bool#
Parameters:

other (object) –

Return type:

bool

__repr__() str#
Return type:

str

_add_worker() None#
Return type:

None

_forget_completed_job(job_id: str, state: bartender.db.models.job_model.State) None#
Parameters:
  • job_id (str) –

  • state (bartender.db.models.job_model.State) –

Return type:

None