Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Timeout

Modalità Focus
Timeout - AWS SDK for Rust

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS SDK for Rust Fornisce diverse impostazioni per la gestione dei timeout delle richieste e dei flussi di dati in stallo. Queste aiutano l'applicazione a comportarsi in modo ottimale quando si verificano ritardi e guasti imprevisti nella rete.

Timeout delle API

Quando si verificano problemi temporanei che possono causare tempi lunghi o fallire completamente, è importante rivedere e impostare i timeout in modo che l'applicazione possa fallire rapidamente e si comporti in modo ottimale. Le richieste che hanno esito negativo possono essere ritentate automaticamente dall'SDK. È buona norma impostare dei timeout sia per il singolo tentativo che per l'intera richiesta.

L'SDK per Rust fornisce un timeout predefinito per stabilire una connessione per una richiesta. L'SDK non ha alcun tempo di attesa massimo predefinito impostato per la ricezione di una risposta per un tentativo di richiesta o per l'intera richiesta. Sono disponibili le seguenti opzioni di timeout:

Parametro Valore predefinito Descrizione
Timeout Connect 3,1 secondi Il tempo massimo di attesa per stabilire una connessione prima di rinunciare.
Timeout dell'operazione Nessuno Il tempo massimo di attesa prima di ricevere una risposta dall'SDK per Rust, inclusi tutti i nuovi tentativi.
Timeout del tentativo di operazione Nessuno Il tempo massimo di attesa per un singolo tentativo HTTP, dopo il quale è possibile ritentare la chiamata API.
Timeout di lettura Nessuno Il tempo massimo di attesa per leggere il primo byte di una risposta dal momento in cui viene avviata la richiesta.

L'esempio seguente mostra la configurazione di un client Amazon S3 con valori di timeout personalizzati:

let config = aws_config::defaults(BehaviorVersion::latest()) .timeout_config( TimeoutConfig::builder() .operation_timeout(Duration::from_secs(5)) .operation_attempt_timeout(Duration::from_millis(1500)) .build() ) .load() .await; let s3 = aws_sdk_s3::Client::new(&config);

Quando utilizzi contemporaneamente il timeout dell'operazione e quello dei tentativi, imposti un limite rigido al tempo totale impiegato per tutti i tentativi tra più tentativi. È inoltre possibile impostare una richiesta HTTP individuale in modo che abbia esito negativo rapidamente in caso di richiesta lenta.

In alternativa all'impostazione di questi valori di timeout sul client del servizio per tutte le operazioni, puoi configurarli o sostituirli per una singola richiesta.

Importante

I timeout delle operazioni e dei tentativi non si applicano ai dati di streaming consumati dopo che l'SDK per Rust ha restituito una risposta. Ad esempio, il consumo di dati da un ByteStream membro di una risposta non è soggetto a timeout operativi.

Protezione del flusso bloccata

L'SDK per Rust fornisce un'altra forma di timeout relativa al rilevamento di flussi in stallo. Uno stream in stallo è un flusso di upload o download che non produce dati per un periodo di prova superiore a quello configurato. Questo aiuta a evitare che le applicazioni si blocchino a tempo indeterminato e non facciano mai progressi.

La protezione dello streaming in stallo restituirà un errore quando uno stream rimane inattivo per un periodo superiore al periodo accettabile.

Per impostazione predefinita, l'SDK per Rust abilita la protezione dallo streaming in fase di stallo sia per i caricamenti che per i download e rileva almeno 1 byte/sec di attività con un generoso periodo di prova di 20 secondi.

L'esempio seguente mostra una soluzione personalizzata StalledStreamProtectionConfig che disabilita la protezione dal caricamento e modifica il periodo di prova per l'assenza di attività a 10 secondi:

let config = aws_config::defaults(BehaviorVersion::latest()) .stalled_stream_protection( StalledStreamProtectionConfig::enabled() .upload_enabled(false) .grace_period(Duration::from_secs(10)) .build() ) .load() .await;
avvertimento

Stalled Stream Protection è un'opzione di configurazione avanzata. Consigliamo di modificare questi valori solo se l'applicazione richiede prestazioni più elevate o se ciò causa altri problemi.

Disattiva la protezione dello streaming in stallo

L'esempio seguente mostra come disabilitare completamente la protezione dai flussi in stallo:

let config = aws_config::defaults(BehaviorVersion::latest()) .stalled_stream_protection(StalledStreamProtectionConfig::disabled()) .load() .await;

Argomento successivo:

Usa l'SDK

Argomento precedente:

Tentativi

In questa pagina

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.