Run HTTP request in broadcast() on tokio runtime
This commit is contained in:
parent
e0258003b9
commit
a7b899817a
@ -1,12 +1,13 @@
|
|||||||
use activitypub::{Activity, Link, Object};
|
use activitypub::{Activity, Link, Object};
|
||||||
use array_tool::vec::Uniq;
|
use array_tool::vec::Uniq;
|
||||||
use reqwest::{blocking::ClientBuilder, header::HeaderValue, Url};
|
use reqwest::{header::HeaderValue, ClientBuilder, Url};
|
||||||
use rocket::{
|
use rocket::{
|
||||||
http::Status,
|
http::Status,
|
||||||
request::{FromRequest, Request},
|
request::{FromRequest, Request},
|
||||||
response::{Responder, Response},
|
response::{Responder, Response},
|
||||||
Outcome,
|
Outcome,
|
||||||
};
|
};
|
||||||
|
use tokio::runtime;
|
||||||
use tracing::{debug, warn};
|
use tracing::{debug, warn};
|
||||||
|
|
||||||
use self::sign::Signable;
|
use self::sign::Signable;
|
||||||
@ -139,6 +140,11 @@ where
|
|||||||
.connect_timeout(std::time::Duration::from_secs(5))
|
.connect_timeout(std::time::Duration::from_secs(5))
|
||||||
.build()
|
.build()
|
||||||
.expect("Can't build client");
|
.expect("Can't build client");
|
||||||
|
let rt = runtime::Builder::new_current_thread()
|
||||||
|
.enable_all()
|
||||||
|
.build()
|
||||||
|
.expect("Error while initializing tokio runtime for federation");
|
||||||
|
rt.block_on(async {
|
||||||
for inbox in boxes {
|
for inbox in boxes {
|
||||||
let body = signed.to_string();
|
let body = signed.to_string();
|
||||||
let mut headers = request::headers();
|
let mut headers = request::headers();
|
||||||
@ -169,6 +175,7 @@ where
|
|||||||
)
|
)
|
||||||
.body(body)
|
.body(body)
|
||||||
.send()
|
.send()
|
||||||
|
.await
|
||||||
.map(move |r| {
|
.map(move |r| {
|
||||||
if r.status().is_success() {
|
if r.status().is_success() {
|
||||||
debug!("Successfully sent activity to inbox ({})", &inbox);
|
debug!("Successfully sent activity to inbox ({})", &inbox);
|
||||||
@ -179,6 +186,7 @@ where
|
|||||||
})
|
})
|
||||||
.map_err(|e| warn!("Error while sending to inbox ({:?})", e));
|
.map_err(|e| warn!("Error while sending to inbox ({:?})", e));
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Shrinkwrap, Clone, Serialize, Deserialize)]
|
#[derive(Shrinkwrap, Clone, Serialize, Deserialize)]
|
||||||
|
Loading…
Reference in New Issue
Block a user