backie/src/schema.rs
Ayrat Badykov 45eb336b8a
Periodic tasks (#5)
* 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
2021-07-18 22:09:30 +03:00

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,
}
}