functional tracing

This commit is contained in:
2023-11-28 09:45:03 +01:00
parent a922896fb8
commit 0e45cbcb6a
8 changed files with 498 additions and 11 deletions

View File

@@ -1 +1 @@
pub mod pdf;
pub mod pdf;

View File

@@ -4,10 +4,11 @@ use std::io::prelude::*;
use headless_chrome::Browser;
use headless_chrome::{types::PrintToPdfOptions, LaunchOptions};
use log::error;
use rocket::{get, Response, futures::Stream, tokio::net::UnixStream, fs::NamedFile};
use tracing::{info_span, debug, info};
use crate::chromium::rocket::BrowserHolder;
use crate::tools::rocket::TracingSpan;
fn generate_pdf(browser: Browser) {
let tab = browser.new_tab().unwrap();
@@ -35,8 +36,19 @@ fn generate_pdf(browser: Browser) {
}
#[get("/cv/<username>/pdf")]
pub async fn render_pdf_cv(username: &str, browser: BrowserHolder) -> NamedFile {
pub async fn render_pdf_cv(username: &str, browser: BrowserHolder, tracing: TracingSpan) -> NamedFile {
let entered_span = tracing.0.enter();
tracing.0.record(
"username",
username
);
let span = info_span!("render_pdf", username = username);
let entered_inner_span = span.enter();
info!("generate PDF");
generate_pdf(browser.browser);
info!("done generating");
drop(entered_inner_span);
drop(entered_span);
"foo!".to_string();
NamedFile::open("/tmp/foo.pdf").await.expect("failed to open foo.pdf")
}