1pub mod event;
2pub mod executor;
3pub mod job;
4pub mod ledger;
5pub mod logger;
6pub mod scheduler;
7pub mod store;
8pub mod trigger;
9
10use async_std::task;
11use chrono::prelude::*;
12use std::time::Duration;
13
14use crate::executor::Executor;
15use crate::job::network::{Job, NetType};
16use crate::logger::Logger;
17use crate::scheduler::{blocking, daemon, Msg, Schedule};
18use crate::store::memory::Store;
19
20#[async_std::main]
21async fn main() {
22 let start_time = {
23 let now = Utc::now().timestamp_nanos();
24 let delay: i64 = 10000000000;
25 let start_time = now + delay;
26 start_time
28 };
29
30 let logger = Logger::new(true, vec![]);
31 let mut blk_scheduler = blocking::Scheduler::new(Some(logger));
32
33 let store = Store::new(String::from("jobStore-test"));
34 let exec = Executor::new(String::from("executor-test"));
35 let njob = Job::new(
36 String::from("job-1"),
37 String::from("https://ping.me/"),
38 NetType::Get,
39 None,
40 None,
41 );
42
43 blk_scheduler
44 .add_store(String::from("jobStore-test"), Box::new(store))
45 .await
46 .unwrap();
47 blk_scheduler
48 .add_executor(String::from("executor-test"), exec)
49 .unwrap();
50 blk_scheduler
51 .add_job(
52 String::from("job-1"),
53 String::from("jobStore-test"),
54 String::from("executor-test"),
55 start_time,
56 None,
57 Box::new(njob),
58 )
59 .unwrap();
60
61 let (sender, _reader) = daemon(Box::new(blk_scheduler));
62
63 match sender
66 .send(Msg::Log(
67 String::from("some id"),
68 String::from("some status"),
69 String::from("some result"),
70 ))
71 .await
72 {
73 Ok(_u) => (),
74 Err(_err) => (),
75 };
76
77 let njob2 = Job::new(
90 String::from("job-2"),
91 String::from("https://ping.me/"),
92 NetType::Get,
93 None,
94 None,
95 );
96
97 task::sleep(Duration::from_secs(3)).await;
98
99 sender
100 .send(Msg::AddJob(
101 String::from("job-2"),
102 String::from("jobStore-test"),
103 String::from("executor-test"),
104 start_time - 2000000000,
105 None,
106 Box::new(njob2),
107 ))
108 .await
109 .unwrap();
110
111 task::sleep(Duration::from_secs(300000)).await;
112}