pub struct PeriodicTask { /* private fields */ }Implementations§
Source§impl PeriodicTask
impl PeriodicTask
Sourcepub fn new(name: &str) -> Self
pub fn new(name: &str) -> Self
Creates a new instance of PeriodicTask.
§Arguments
name: A string slice that holds the name of the task.
§Returns
Returns a new instance of PeriodicTask.
Examples found in repository?
examples/periodic.rs (line 27)
6async fn main() {
7 tracing_subscriber::fmt()
8 .with_max_level(tracing::Level::INFO)
9 .init();
10
11 #[derive(Debug)]
12 struct Test {
13 pub name: String,
14 pub age: u32,
15 }
16
17 let param = Arc::new(Test {
18 name: "this is a test name".to_string(),
19 age: 34,
20 });
21 let task = Arc::new(move |param: Option<Arc<Test>>| {
22 Box::pin(async move {
23 println!("this is periodic task. param={:#?}", param.unwrap());
24 Ok(())
25 })
26 });
27 let periodic_task = Arc::new(PeriodicTask::new("periodic example"));
28 periodic_task.start_with_signal(task, Some(param), Duration::from_secs(2));
29 tokio::time::sleep(Duration::from_secs(10 * 60)).await;
30}Sourcepub async fn shutdown(self: Arc<Self>)
pub async fn shutdown(self: Arc<Self>)
Sends a shutdown signal to the task.
This method notifies the task to stop executing.
Sourcepub fn start_with_signal<F, P>(
self: Arc<Self>,
task: Arc<dyn Fn(Option<Arc<P>>) -> F + Send + Sync>,
param: Option<Arc<P>>,
interval: Duration,
)
pub fn start_with_signal<F, P>( self: Arc<Self>, task: Arc<dyn Fn(Option<Arc<P>>) -> F + Send + Sync>, param: Option<Arc<P>>, interval: Duration, )
Starts the periodic task and sets up a signal handler for shutdown.
§Arguments
task: AnArcof a function that returns a future to be executed periodically.interval: ADurationspecifying how often the task should run.
§Type Parameters
F: The type of the future returned by the task function.
§Requirements
The future must output a Result with a unit value or a BoxError on failure.
Examples found in repository?
examples/periodic.rs (line 28)
6async fn main() {
7 tracing_subscriber::fmt()
8 .with_max_level(tracing::Level::INFO)
9 .init();
10
11 #[derive(Debug)]
12 struct Test {
13 pub name: String,
14 pub age: u32,
15 }
16
17 let param = Arc::new(Test {
18 name: "this is a test name".to_string(),
19 age: 34,
20 });
21 let task = Arc::new(move |param: Option<Arc<Test>>| {
22 Box::pin(async move {
23 println!("this is periodic task. param={:#?}", param.unwrap());
24 Ok(())
25 })
26 });
27 let periodic_task = Arc::new(PeriodicTask::new("periodic example"));
28 periodic_task.start_with_signal(task, Some(param), Duration::from_secs(2));
29 tokio::time::sleep(Duration::from_secs(10 * 60)).await;
30}Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for PeriodicTask
impl !UnwindSafe for PeriodicTask
impl Freeze for PeriodicTask
impl Send for PeriodicTask
impl Sync for PeriodicTask
impl Unpin for PeriodicTask
impl UnsafeUnpin for PeriodicTask
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> ⓘ
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 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> ⓘ
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