Utilizzo delle operazioni a lunga esecuzione

A volte, un'API potrebbe esporre un metodo il cui completamento richiede una quantità di tempo significativa. Anziché bloccare l'esecuzione dell'attività, puoi restituire una promessa e consentire all'utente di controllare lo stato.

Le Google Cloud librerie client per Rust forniscono helper per lavorare con queste operazioni a lunga esecuzione (LRO). Questa guida mostra come avviare le LRO e attendere il loro completamento.

Prerequisiti

Questa guida utilizza il servizio Cloud Storage per mantenere concreti gli snippet di codice. Questi concetti si applicano a qualsiasi altro servizio che utilizza le LRO.

Prima di seguire questa guida, devi:

Per istruzioni complete sulla configurazione delle librerie Rust, consulta la sezione Configurare l'ambiente di sviluppo.

Dipendenze

Dichiara Google Cloud le dipendenze nel tuo Cargo.toml file:

cargo add google-cloud-storage google-cloud-lro google-cloud-longrunning

Hai anche bisogno di diverse funzionalità tokio:

cargo add tokio --features full,macros

Avviare un'operazione a lunga esecuzione

Questo esempio utilizza la ridenominazione della cartella. Questa operazione può richiedere molto tempo per le cartelle di grandi dimensioni, ma è relativamente veloce per le cartelle più piccole.

Per avviare un'operazione a lunga esecuzione, devi inizializzare un client ed eseguire la RPC.

Innanzitutto, aggiungi le dichiarazioni use per evitare nomi di pacchetti lunghi:

use anyhow::anyhow;
use google_cloud_longrunning as longrunning;
use google_cloud_storage::client::StorageControl;

Poi, crea il client:

let client = StorageControl::builder().build().await?;

Nelle librerie client Rust, ogni richiesta è rappresentata da un metodo che restituisce un generatore di richieste. Chiama il metodo sul client per creare il generatore di richieste: