pub struct TaskBuilder { /* private fields */ }Expand description
Builder for configuring scheduled tasks with a fluent API
This builder is returned by Schedule::call() and allows you to configure
when and how a closure-based task should run.
§Example
schedule.call(|| async {
println!("Running task!");
Ok(())
})
.daily()
.at("03:00")
.name("daily-task")
.description("Runs every day at 3 AM");Implementations§
Source§impl TaskBuilder
impl TaskBuilder
Sourcepub fn new<F>(f: F) -> Self
pub fn new<F>(f: F) -> Self
Create a new task builder with a closure
The closure should return a future that resolves to Result<(), FrameworkError>.
Sourcepub fn from_async<F, Fut>(f: F) -> Self
pub fn from_async<F, Fut>(f: F) -> Self
Create a TaskBuilder from an async closure
This is a convenience method that wraps the async closure properly.
Sourcepub fn try_cron(self, expression: &str) -> Result<Self, String>
pub fn try_cron(self, expression: &str) -> Result<Self, String>
Try to set a custom cron expression, returning an error if invalid
Sourcepub fn every_minute(self) -> Self
pub fn every_minute(self) -> Self
Run every minute
Sourcepub fn every_two_minutes(self) -> Self
pub fn every_two_minutes(self) -> Self
Run every 2 minutes
Sourcepub fn every_five_minutes(self) -> Self
pub fn every_five_minutes(self) -> Self
Run every 5 minutes
Sourcepub fn every_ten_minutes(self) -> Self
pub fn every_ten_minutes(self) -> Self
Run every 10 minutes
Sourcepub fn every_fifteen_minutes(self) -> Self
pub fn every_fifteen_minutes(self) -> Self
Run every 15 minutes
Sourcepub fn every_thirty_minutes(self) -> Self
pub fn every_thirty_minutes(self) -> Self
Run every 30 minutes
Sourcepub fn every_two_hours(self) -> Self
pub fn every_two_hours(self) -> Self
Run every 2 hours
Sourcepub fn every_three_hours(self) -> Self
pub fn every_three_hours(self) -> Self
Run every 3 hours
Sourcepub fn every_four_hours(self) -> Self
pub fn every_four_hours(self) -> Self
Run every 4 hours
Sourcepub fn every_six_hours(self) -> Self
pub fn every_six_hours(self) -> Self
Run every 6 hours
Sourcepub fn twice_daily(self, first_hour: u32, second_hour: u32) -> Self
pub fn twice_daily(self, first_hour: u32, second_hour: u32) -> Self
Sourcepub fn wednesdays(self) -> Self
pub fn wednesdays(self) -> Self
Run on Wednesdays at midnight
Sourcepub fn monthly_on(self, day: u32) -> Self
pub fn monthly_on(self, day: u32) -> Self
Sourcepub fn name(self, name: &str) -> Self
pub fn name(self, name: &str) -> Self
Set a name for this task
The name is used in logs and when listing scheduled tasks.
Sourcepub fn description(self, desc: &str) -> Self
pub fn description(self, desc: &str) -> Self
Set a description for this task
The description is shown when listing scheduled tasks.
Sourcepub fn without_overlapping(self) -> Self
pub fn without_overlapping(self) -> Self
Prevent overlapping task runs
When enabled, the scheduler will skip running this task if a previous run is still in progress.
Sourcepub fn run_in_background(self) -> Self
pub fn run_in_background(self) -> Self
Run task in background (non-blocking)
When enabled, the scheduler won’t wait for the task to complete before continuing to the next task.
Auto Trait Implementations§
impl Freeze for TaskBuilder
impl !RefUnwindSafe for TaskBuilder
impl Send for TaskBuilder
impl Sync for TaskBuilder
impl Unpin for TaskBuilder
impl UnsafeUnpin for TaskBuilder
impl !UnwindSafe for TaskBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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