Add Span to repository traversal
This commit is contained in:
@@ -7,6 +7,7 @@ use reqwest_middleware::reqwest::Url;
|
||||
use std::collections::HashSet;
|
||||
use std::pin::Pin;
|
||||
use std::task::{Context, Poll, ready};
|
||||
use tracing::debug_span;
|
||||
|
||||
/// Recursively traverse an entire repository.
|
||||
///
|
||||
@@ -21,6 +22,7 @@ pub struct Traverse<'a> {
|
||||
visited_urls: HashSet<Url>,
|
||||
pending_urls: HashSet<Url>,
|
||||
parallelism: Option<usize>,
|
||||
span: tracing::Span,
|
||||
}
|
||||
|
||||
impl<'a> Traverse<'a> {
|
||||
@@ -35,6 +37,7 @@ impl<'a> Traverse<'a> {
|
||||
visited_urls: HashSet::new(),
|
||||
pending_urls: HashSet::new(),
|
||||
parallelism,
|
||||
span: debug_span!("Traverse Repository", %root),
|
||||
};
|
||||
this.visited_urls.insert(root.clone());
|
||||
this.stream
|
||||
@@ -89,6 +92,7 @@ impl<'a> Stream for Traverse<'a> {
|
||||
type Item = crate::Result<RdfSource<Dataset>>;
|
||||
|
||||
fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
|
||||
let _enter = self.span.clone().entered();
|
||||
let result = match ready!(self.stream.poll_next_unpin(cx)) {
|
||||
Some(Ok(document)) => {
|
||||
self.visited_urls.insert(document.origin().clone());
|
||||
|
||||
Reference in New Issue
Block a user