Update readme with execution diagram
This commit is contained in:
parent
ed6a784e02
commit
617bd71bd1
3 changed files with 22 additions and 2 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -2,3 +2,4 @@
|
||||||
Cargo.lock
|
Cargo.lock
|
||||||
docs/content/docs/CHANGELOG.md
|
docs/content/docs/CHANGELOG.md
|
||||||
docs/content/docs/README.md
|
docs/content/docs/README.md
|
||||||
|
.DS_Store
|
||||||
|
|
19
README.md
19
README.md
|
@ -31,6 +31,25 @@ Here are some of the Backie's key features:
|
||||||
- Task timeout: Tasks are retried if they are not completed in time
|
- Task timeout: Tasks are retried if they are not completed in time
|
||||||
- Scheduling of tasks: Tasks can be scheduled to be executed at a specific time
|
- Scheduling of tasks: Tasks can be scheduled to be executed at a specific time
|
||||||
|
|
||||||
|
## Task execution protocol
|
||||||
|
|
||||||
|
The following diagram shows the protocol used to execute tasks:
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
stateDiagram-v2
|
||||||
|
[*] --> Ready
|
||||||
|
Ready --> Running: Task is picked up by a worker
|
||||||
|
Running --> Done: Task is finished
|
||||||
|
Running --> Failed: Task failed
|
||||||
|
Failed --> Ready: Task is retried
|
||||||
|
Failed --> [*]: Task is not retried anymore, max retries reached
|
||||||
|
Done --> [*]
|
||||||
|
```
|
||||||
|
|
||||||
|
When a task goes from `Running` to `Failed` it is retried. The number of retries is controlled by the
|
||||||
|
[`BackgroundTask::MAX_RETRIES`] attribute. The default implementation uses `3` retries.
|
||||||
|
|
||||||
|
|
||||||
## Safety
|
## Safety
|
||||||
|
|
||||||
This crate uses `#![forbid(unsafe_code)]` to ensure everything is implemented in 100% safe Rust.
|
This crate uses `#![forbid(unsafe_code)]` to ensure everything is implemented in 100% safe Rust.
|
||||||
|
|
|
@ -53,8 +53,8 @@ pub trait BackgroundTask: Serialize + DeserializeOwned + Sync + Send + 'static {
|
||||||
|
|
||||||
/// Number of retries for tasks.
|
/// Number of retries for tasks.
|
||||||
///
|
///
|
||||||
/// By default, it is set to 5.
|
/// By default, it is set to 3.
|
||||||
const MAX_RETRIES: i32 = 5;
|
const MAX_RETRIES: i32 = 3;
|
||||||
|
|
||||||
/// The application data provided to this task at runtime.
|
/// The application data provided to this task at runtime.
|
||||||
type AppData: Clone + Send + 'static;
|
type AppData: Clone + Send + 'static;
|
||||||
|
|
Loading…
Reference in a new issue