add workspace Cargo.toml and docker-compose.yml

This commit is contained in:
theBreadCompany 2025-01-22 13:33:25 +01:00
parent 2577edbf44
commit c6a9b26bb2
6 changed files with 2891 additions and 0 deletions

2820
Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

2
Cargo.toml Normal file
View file

@ -0,0 +1,2 @@
[workspace]
members = [ "datafetcher","dataworker"]

12
datafetcher/Cargo.toml Normal file
View file

@ -0,0 +1,12 @@
[package]
name = "datafetcher"
version = "0.1.0"
edition = "2021"
[dependencies]
chrono = "0.4.39"
maud = { version = "0.26.0", features = ["rocket"] }
reqwest = "0.12.12"
rocket = "0.5.1"
tokio = { version = "1.43.0", features = ["rt-multi-thread", "macros", "time"] }
dataworker = { path = "../dataworker" }

5
datafetcher/src/lib.rs Normal file
View file

@ -0,0 +1,5 @@
use std::time::Duration;
fn main() {
let time_window = Duration::from_secs(3600);
}

42
datafetcher/src/main.rs Normal file
View file

@ -0,0 +1,42 @@
#[macro_use]
extern crate rocket;
use maud::{html, Markup};
use rocket::response::stream::{Event, EventStream};
use rocket::tokio::time::{interval, Duration};
#[get("/sse")]
async fn sse() -> EventStream![] {
EventStream! {
let mut interval = interval(Duration::from_secs(2));
loop {
interval.tick().await;
yield Event::data(format!("Updated time: {:?}", chrono::Utc::now()));
}
}
}
#[get("/")]
fn index() -> Markup {
html! {
html {
head {
title { "Live Updates with SSE" }
script {
"const eventSource = new EventSource('/sse');
eventSource.onmessage = (event) => {
document.getElementById('updates').innerText = event.data;
};"
}
}
body {
h1 { "Live Updates Example" }
div id="updates" { "Waiting for updates..." }
}
}
}
}
#[launch]
fn rocket() -> _ {
rocket::build().mount("/", routes![index, sse])
}

10
docker-compose.yml Normal file
View file

@ -0,0 +1,10 @@
services:
db:
image: postgres
restart: always
environment:
POSTGRES_HOST_AUTH_METHOD: trust
POSTGRES_USER: postgres
ports:
- 5432:5432