Skip to main content

Timers

View Markdown

A Workflow can set a Durable Timer for a fixed time period. In some SDKs, the function is called sleep(), and in others, it's called timer().

A Workflow can sleep for days, months, or even years. Timers are persisted, so even if your Worker or Temporal Service is down when the time period completes, as soon as your Worker and Temporal Service are back up, the Timer resolves and your code continues executing.

Sleeping is a resource-light operation: it doesn't tie up the process, and you can run millions of Timers off a single Worker.

To set a Timer in Rust, call ctx.timer() and await it. Pass a Duration directly, or build TimerOptions to add a summary that the Temporal Web UI shows for the Timer:

rust-sandbox/workflows/timers/src/workflows.rs

ctx.timer(
TimerOptions::builder(Duration::from_secs(60))
.summary("important timer".to_owned())
.build(),
)
.await;