mirror of
https://github.com/OMGeeky/yup-oauth2.git
synced 2025-12-26 16:27:25 +01:00
doc(tokio): Set keep_alive to false on hyper clients.
This prevents hanging event loops.
This commit is contained in:
@@ -11,8 +11,9 @@ fn main() {
|
||||
let creds = yup_oauth2::read_application_secret(path::Path::new("clientsecret.json"))
|
||||
.expect("clientsecret");
|
||||
let https = HttpsConnector::new(1).expect("tls");
|
||||
let client = Client::builder().build::<_, hyper::Body>(https);
|
||||
|
||||
let client = Client::builder()
|
||||
.keep_alive(false)
|
||||
.build::<_, hyper::Body>(https);
|
||||
let scopes = &["https://www.googleapis.com/auth/youtube.readonly".to_string()];
|
||||
|
||||
let ad = yup_oauth2::DefaultFlowDelegate;
|
||||
|
||||
@@ -9,7 +9,9 @@ use std::path::Path;
|
||||
|
||||
fn main() {
|
||||
let https = HttpsConnector::new(1).expect("tls");
|
||||
let client = Client::builder().build::<_, hyper::Body>(https);
|
||||
let client = Client::builder()
|
||||
.keep_alive(false)
|
||||
.build::<_, hyper::Body>(https);
|
||||
let ad = yup_oauth2::DefaultFlowDelegate;
|
||||
let secret = yup_oauth2::read_application_secret(Path::new("clientsecret.json"))
|
||||
.expect("clientsecret.json");
|
||||
@@ -35,6 +37,5 @@ fn main() {
|
||||
Ok(())
|
||||
});
|
||||
|
||||
let mut rt = tokio::runtime::Runtime::new().unwrap();
|
||||
rt.block_on(fut).unwrap();
|
||||
tokio::run(fut)
|
||||
}
|
||||
|
||||
@@ -13,7 +13,9 @@ fn main() {
|
||||
let creds =
|
||||
yup_oauth2::service_account_key_from_file(path::Path::new("serviceaccount.json")).unwrap();
|
||||
let https = HttpsConnector::new(1).expect("tls");
|
||||
let client = Client::builder().build::<_, hyper::Body>(https);
|
||||
let client = Client::builder()
|
||||
.keep_alive(false)
|
||||
.build::<_, hyper::Body>(https);
|
||||
|
||||
let mut sa = yup_oauth2::ServiceAccountAccess::new(creds, client);
|
||||
|
||||
@@ -29,7 +31,6 @@ fn main() {
|
||||
println!("cached token is {:?} and should be identical", tok);
|
||||
Ok(())
|
||||
});
|
||||
let all = fut.join(fut2);
|
||||
let mut rt = tokio::runtime::Runtime::new().unwrap();
|
||||
rt.block_on(all).unwrap();
|
||||
let all = fut.join(fut2).then(|_| Ok(()));
|
||||
tokio::run(all)
|
||||
}
|
||||
|
||||
@@ -16,6 +16,10 @@ use std::sync::{Arc, Mutex};
|
||||
///
|
||||
/// `ServiceAccountAccess` does not need (and does not work) with `Authenticator`, given that it
|
||||
/// does not require interaction and implements its own caching. Use it directly.
|
||||
///
|
||||
/// NOTE: It is recommended to use a client constructed like this in order to prevent functions
|
||||
/// like `hyper::run()` from hanging: `let client = hyper::Client::builder().keep_alive(false);`.
|
||||
/// Due to token requests being rare, this should not result in a too bad performance problem.
|
||||
pub struct Authenticator<
|
||||
T: GetToken,
|
||||
S: TokenStorage,
|
||||
|
||||
Reference in New Issue
Block a user