45eb336b8a
* Periodic tasks * schedule next execution * add scheduler * ignore test * fix clippy * make start public * check if the period task already exists * do not insert task if it's already in the queue * fix tests
42 lines
925 B
Rust
42 lines
925 B
Rust
use diesel_derive_enum::DbEnum;
|
|
|
|
#[derive(DbEnum, Debug, Eq, PartialEq, Clone)]
|
|
pub enum FangTaskState {
|
|
New,
|
|
InProgress,
|
|
Failed,
|
|
Finished,
|
|
}
|
|
|
|
table! {
|
|
use super::FangTaskStateMapping;
|
|
use diesel::sql_types::Jsonb;
|
|
use diesel::sql_types::Nullable;
|
|
use diesel::sql_types::Text;
|
|
use diesel::sql_types::Timestamptz;
|
|
use diesel::sql_types::Uuid;
|
|
use diesel::sql_types::Varchar;
|
|
|
|
|
|
fang_tasks (id) {
|
|
id -> Uuid,
|
|
metadata -> Jsonb,
|
|
error_message -> Nullable<Text>,
|
|
state -> FangTaskStateMapping,
|
|
task_type -> Varchar,
|
|
created_at -> Timestamptz,
|
|
updated_at -> Timestamptz,
|
|
}
|
|
}
|
|
|
|
table! {
|
|
fang_periodic_tasks (id) {
|
|
id -> Uuid,
|
|
metadata -> Jsonb,
|
|
period_in_seconds -> Int4,
|
|
scheduled_at -> Nullable<Timestamptz>,
|
|
created_at -> Timestamptz,
|
|
updated_at -> Timestamptz,
|
|
}
|
|
}
|