reifydb_sub_task/
registry.rs1use std::sync::Arc;
5
6use dashmap::DashMap;
7use reifydb_core::interface::catalog::task::TaskId;
8use reifydb_runtime::context::clock::Instant;
9
10use crate::task::ScheduledTask;
11
12#[derive(Debug, Clone)]
14pub struct TaskEntry {
15 pub task: Arc<ScheduledTask>,
17 pub next_execution: Instant,
19}
20
21pub type TaskRegistry = Arc<DashMap<TaskId, TaskEntry>>;
23
24#[derive(Debug, Clone)]
26pub struct TaskInfo {
27 pub id: TaskId,
28 pub name: String,
29 pub next_execution: Instant,
30}
31
32impl TaskInfo {
33 pub fn from_entry(id: TaskId, entry: &TaskEntry) -> Self {
34 Self {
35 id,
36 name: entry.task.name.clone(),
37 next_execution: entry.next_execution.clone(),
38 }
39 }
40}