Skip to main content

JobScheduleUpsert

Struct JobScheduleUpsert 

Source
pub struct JobScheduleUpsert<'a> {
    pub name: &'a str,
    pub job_type: JobType<'a>,
    pub organization_id: Option<Uuid>,
    pub payload_template: &'a Value,
    pub cron_expr: &'a str,
    pub is_active: bool,
    pub next_fire_at: DateTime<Utc>,
    pub max_jitter_seconds: i32,
}
Expand description

Input for creating or updating a cron-backed job schedule.

Schedules are keyed by name. Updating an existing schedule refreshes the stored job type, payload template, cron expression, and jitter, while leaving scheduler-managed state intact. organization_id and is_active apply only when a new schedule row is inserted. next_fire_at applies on insert and when the cron expression changes.

Cron expressions are interpreted in UTC and must be accepted by cron::Schedule::from_str, the same parser used by runledger-runtime when materializing due schedules. The upsert validator rejects blank or padded schedule names, blank or padded cron expressions, invalid cron expressions, negative jitter, and jitter above 86,400 seconds.

This input does not encode a compile-time job catalog. The PostgreSQL schema requires a matching job-definition row for job_type, but this API does not prove that a worker process has registered a runtime handler for that job type.

Fields§

§name: &'a str

Stable unique schedule name without surrounding whitespace.

§job_type: JobType<'a>

Job type to enqueue whenever the schedule fires.

§organization_id: Option<Uuid>

Optional organization scope for enqueued jobs on first insert.

§payload_template: &'a Value

JSON payload copied into each job created by the scheduler.

§cron_expr: &'a str

UTC cron expression without surrounding whitespace, validated on upsert and parsed again when the schedule fires.

§is_active: bool

Whether the runtime scheduler should claim this schedule on first insert.

§next_fire_at: DateTime<Utc>

Initial fire cursor for the scheduler, also used when changing cron syntax.

§max_jitter_seconds: i32

Maximum deterministic jitter applied when materializing a due schedule, capped at 86,400 seconds.

Trait Implementations§

Source§

impl<'a> Clone for JobScheduleUpsert<'a>

Source§

fn clone(&self) -> JobScheduleUpsert<'a>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for JobScheduleUpsert<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for JobScheduleUpsert<'a>

§

impl<'a> RefUnwindSafe for JobScheduleUpsert<'a>

§

impl<'a> Send for JobScheduleUpsert<'a>

§

impl<'a> Sync for JobScheduleUpsert<'a>

§

impl<'a> Unpin for JobScheduleUpsert<'a>

§

impl<'a> UnsafeUnpin for JobScheduleUpsert<'a>

§

impl<'a> UnwindSafe for JobScheduleUpsert<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more