jobdb

package
v0.3.64 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2023 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Job

type Job struct {
	// contains filtered or unexported fields
}

Job is the scheduler-internal representation of a job.

func EmptyJob added in v0.3.54

func EmptyJob(id string) *Job

func NewJob

func NewJob(
	jobId string,
	jobset string,
	queue string,
	priority uint32,
	schedulingInfo *schedulerobjects.JobSchedulingInfo,
	queued bool,
	queuedVersion int32,
	cancelRequested bool,
	cancelByJobsetRequested bool,
	cancelled bool,
	created int64,
) *Job

NewJob creates a new scheduler job

func (*Job) AllRuns added in v0.3.63

func (job *Job) AllRuns() []*JobRun

AllRuns returns all runs associated with job.

func (*Job) CancelByJobsetRequested

func (job *Job) CancelByJobsetRequested() bool

CancelByJobsetRequested returns true if the user has requested this job's jobset be cancelled.

func (*Job) CancelRequested

func (job *Job) CancelRequested() bool

CancelRequested returns true if the user has requested this job be cancelled.

func (*Job) Cancelled

func (job *Job) Cancelled() bool

Cancelled Returns true if the scheduler has cancelled the job

func (*Job) Created

func (job *Job) Created() int64

Created Returns the creation time of the job

func (*Job) Failed

func (job *Job) Failed() bool

Failed Returns true if the scheduler has marked the job as failed

func (*Job) GetAnnotations

func (job *Job) GetAnnotations() map[string]string

GetAnnotations returns the annotations on the job. This is needed for compatibility with interfaces.LegacySchedulerJob

func (*Job) GetId

func (job *Job) GetId() string

GetId returns the id of the Job. This is needed for the LegacyJob interface.

func (*Job) GetJobSet

func (job *Job) GetJobSet() string

GetJobSet returns the jobset the job belongs to. This is needed for compatibility with legacyJob

func (*Job) GetQueue

func (job *Job) GetQueue() string

GetQueue returns the queue this job belongs to. This is needed for the LegacyJob interface.

func (*Job) GetRequirements

GetRequirements returns the scheduling requirements associated with the job. this is needed for compatibility with interfaces.LegacySchedulerJob

func (*Job) HasRuns

func (job *Job) HasRuns() bool

HasRuns returns true if the job has been run If this is returns true then LatestRun is guaranteed to return a non-nil value.

func (*Job) Id

func (job *Job) Id() string

Id returns the id of the Job.

func (*Job) InTerminalState

func (job *Job) InTerminalState() bool

InTerminalState returns true if the job is in a terminal state

func (*Job) JobSchedulingInfo

func (job *Job) JobSchedulingInfo() *schedulerobjects.JobSchedulingInfo

JobSchedulingInfo returns the scheduling requirements associated with the job

func (*Job) Jobset

func (job *Job) Jobset() string

Jobset returns the jobset the job belongs to.

func (*Job) LatestRun

func (job *Job) LatestRun() *JobRun

LatestRun returns the currently active job run or nil if there are no runs yet. Callers should either guard against nil values explicitly or via HasRuns.

func (*Job) NumAttempts added in v0.3.63

func (job *Job) NumAttempts() uint

NumAttempts returns the number of times the executors tried to run this job Note that this is O(N) on Runs, but this should be fine as the number of runs should be small.

func (*Job) NumReturned

func (job *Job) NumReturned() uint

NumReturned returns the number of times this job has been returned by executors Note that this is O(N) on Runs, but this should be fine as the number of runs should be small.

func (*Job) Priority

func (job *Job) Priority() uint32

Priority returns the priority of the job.

func (*Job) Queue

func (job *Job) Queue() string

Queue returns the queue this job belongs to.

func (*Job) Queued

func (job *Job) Queued() bool

Queued returns true if the job should be considered by the scheduler for assignment or false otherwise.

func (*Job) QueuedVersion added in v0.3.63

func (job *Job) QueuedVersion() int32

QueuedVersion returns current queued state version.

func (*Job) RequestedPriority

func (job *Job) RequestedPriority() uint32

RequestedPriority returns the requested priority of the job.

func (*Job) RunById

func (job *Job) RunById(id uuid.UUID) *JobRun

RunById returns the Run corresponding to the provided run id or nil if no such Run exists.

func (*Job) Succeeded

func (job *Job) Succeeded() bool

Succeeded Returns true if the scheduler has marked the job as succeeded

func (*Job) WithCancelByJobsetRequested

func (job *Job) WithCancelByJobsetRequested(cancelByJobsetRequested bool) *Job

WithCancelByJobsetRequested returns a copy of the job with the cancelByJobsetRequested status updated.

func (*Job) WithCancelRequested

func (job *Job) WithCancelRequested(cancelRequested bool) *Job

WithCancelRequested returns a copy of the job with the cancelRequested status updated.

func (*Job) WithCancelled

func (job *Job) WithCancelled(cancelled bool) *Job

WithCancelled returns a copy of the job with the cancelled status updated

func (*Job) WithCreated added in v0.3.53

func (job *Job) WithCreated(created int64) *Job

WithCreated returns a copy of the job with the creation time updated.

func (*Job) WithFailed

func (job *Job) WithFailed(failed bool) *Job

WithFailed returns a copy of the job with the failed status updated.

func (*Job) WithJobSchedulingInfo added in v0.3.54

func (job *Job) WithJobSchedulingInfo(jobSchedulingInfo *schedulerobjects.JobSchedulingInfo) *Job

WithJobSchedulingInfo returns a copy of the job with the job scheduling info updated.

func (*Job) WithJobset added in v0.3.54

func (job *Job) WithJobset(jobset string) *Job

WithJobset returns a copy of the job with the jobset updated.

func (*Job) WithNewRun

func (job *Job) WithNewRun(executor string, node string) *Job

WithNewRun creates a copy of the job with a new run on the given executor.

func (*Job) WithPriority

func (job *Job) WithPriority(priority uint32) *Job

WithPriority returns a copy of the job with the priority updated.

func (*Job) WithQueue added in v0.3.54

func (job *Job) WithQueue(queue string) *Job

WithQueue returns a copy of the job with the queue updated.

func (*Job) WithQueued

func (job *Job) WithQueued(queued bool) *Job

WithQueued returns a copy of the job with the queued status updated.

func (*Job) WithQueuedVersion added in v0.3.63

func (job *Job) WithQueuedVersion(version int32) *Job

WithQueuedVersion returns a copy of the job with the queued version updated.

func (*Job) WithRequestedPriority

func (job *Job) WithRequestedPriority(priority uint32) *Job

WithRequestedPriority returns a copy of the job with the priority updated.

func (*Job) WithSucceeded

func (job *Job) WithSucceeded(succeeded bool) *Job

WithSucceeded returns a copy of the job with the succeeded status updated.

func (*Job) WithUpdatedRun

func (job *Job) WithUpdatedRun(run *JobRun) *Job

WithUpdatedRun creates a copy of the job with run details updated.

type JobDb

type JobDb struct {
	// contains filtered or unexported fields
}

func NewJobDb

func NewJobDb() *JobDb

func (*JobDb) BatchDelete

func (jobDb *JobDb) BatchDelete(txn *Txn, ids []string) error

BatchDelete removes the jobs with the given ids from the database. Any ids that are not in the database will be ignored

func (*JobDb) GetAll

func (jobDb *JobDb) GetAll(txn *Txn) []*Job

GetAll returns all jobs in the database. The Jobs returned by this function *must not* be subsequently modified

func (*JobDb) GetById

func (jobDb *JobDb) GetById(txn *Txn, id string) *Job

GetById returns the job with the given Id or nil if no such job exists The Job returned by this function *must not* be subsequently modified

func (*JobDb) GetByRunId

func (jobDb *JobDb) GetByRunId(txn *Txn, runId uuid.UUID) *Job

GetByRunId returns the job with the given run id or nil if no such job exists The Job returned by this function *must not* be subsequently modified

func (*JobDb) HasQueuedJobs

func (jobDb *JobDb) HasQueuedJobs(txn *Txn, queue string) bool

HasQueuedJobs returns true if the queue has any jobs in the running state or false otherwise

func (*JobDb) QueuedJobs added in v0.3.53

func (jobDb *JobDb) QueuedJobs(txn *Txn, queue string) *immutable.SortedSetIterator[*Job]

QueuedJobs returns true if the queue has any jobs in the running state or false otherwise

func (*JobDb) ReadTxn

func (jobDb *JobDb) ReadTxn() *Txn

ReadTxn returns a read-only transaction. Multiple read-only transactions can access the db concurrently

func (*JobDb) Upsert

func (jobDb *JobDb) Upsert(txn *Txn, jobs []*Job) error

Upsert will insert the given jobs if they don't already exist or update the if they do

func (*JobDb) WriteTxn

func (jobDb *JobDb) WriteTxn() *Txn

WriteTxn returns a writeable transaction. Only a single write transaction may access the db at any given time so note that this function will block until any outstanding write transactions have been committed or aborted

type JobPriorityComparer added in v0.3.53

type JobPriorityComparer struct{}

func (JobPriorityComparer) Compare added in v0.3.53

func (j JobPriorityComparer) Compare(a, b *Job) int

Compare jobs first by priority then by created and finally by id. returns -1 if a should come before b, 1 if a should come after b and 0 if the two jobs are equal

type JobRun

type JobRun struct {
	// contains filtered or unexported fields
}

JobRun is the scheduler-internal representation of a job run.

func CreateRun

func CreateRun(
	id uuid.UUID,
	jobId string,
	creationTime int64,
	executor string,
	node string,
	running bool,
	succeeded bool,
	failed bool,
	cancelled bool,
	returned bool,
	runAttempted bool,
) *JobRun

CreateRun creates a new scheduler job run from a database job run

func MinimalRun added in v0.3.54

func MinimalRun(id uuid.UUID, creationTime int64) *JobRun

func (*JobRun) Cancelled

func (run *JobRun) Cancelled() bool

Cancelled Returns true if the user has cancelled the job run

func (*JobRun) Created

func (run *JobRun) Created() int64

Created Returns the creation time of the job run

func (*JobRun) DeepCopy added in v0.3.53

func (run *JobRun) DeepCopy() *JobRun

func (*JobRun) Executor

func (run *JobRun) Executor() string

Executor returns the executor to which the JobRun is assigned.

func (*JobRun) Failed

func (run *JobRun) Failed() bool

Failed Returns true if the executor has reported the job run as failed

func (*JobRun) Id

func (run *JobRun) Id() uuid.UUID

Id returns the id of the JobRun.

func (*JobRun) InTerminalState

func (run *JobRun) InTerminalState() bool

InTerminalState returns true if the JobRun is in a terminal state

func (*JobRun) JobId added in v0.3.54

func (run *JobRun) JobId() string

Id returns the id of the job this run is associated with.

func (*JobRun) Node

func (run *JobRun) Node() string

Node returns the node to which the JobRun is assigned.

func (*JobRun) Returned

func (run *JobRun) Returned() bool

Returned Returns true if the executor has returned the job run.

func (*JobRun) RunAttempted added in v0.3.63

func (run *JobRun) RunAttempted() bool

RunAttempted Returns true if the executor has attempted to run the job.

func (*JobRun) Running

func (run *JobRun) Running() bool

Running Returns true if the executor has reported the job run as running

func (*JobRun) Succeeded

func (run *JobRun) Succeeded() bool

Succeeded Returns true if the executor has reported the job run as successful

func (*JobRun) WithAttempted added in v0.3.63

func (run *JobRun) WithAttempted(attempted bool) *JobRun

WithAttempted returns a copy of the job run with the runAttempted status updated.

func (*JobRun) WithCancelled

func (run *JobRun) WithCancelled(cancelled bool) *JobRun

WithCancelled returns a copy of the job run with the cancelled status updated.

func (*JobRun) WithFailed

func (run *JobRun) WithFailed(failed bool) *JobRun

WithFailed returns a copy of the job run with the failed status updated.

func (*JobRun) WithReturned

func (run *JobRun) WithReturned(returned bool) *JobRun

func (*JobRun) WithRunning

func (run *JobRun) WithRunning(running bool) *JobRun

WithRunning returns a copy of the job run with the running status updated.

func (*JobRun) WithSucceeded

func (run *JobRun) WithSucceeded(succeeded bool) *JobRun

WithSucceeded returns a copy of the job run with the succeeded status updated.

type Txn added in v0.3.53

type Txn struct {
	// contains filtered or unexported fields
}

Txn is a JobDb Transaction. Transactions provide a consistent view of the database, allowing readers to perform multiple actions without the database changing from underneath them. Write transactions also allow callers to perform write operations that will not be visible to other users until the transaction is committed.

func (*Txn) Abort added in v0.3.53

func (txn *Txn) Abort()

func (*Txn) Commit added in v0.3.53

func (txn *Txn) Commit()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL