Esegui più operazioni insieme
Le operazioni indipendenti partono insieme e finiscono nel tempo della più lenta: «Hola Mundo» e «Otra Cosa» tornano come «hola-mundo» e «otra-cosa» in un unico risultato, nell’ordine di invio. Un ramo che fallisce viene ritentato da solo.
Questa attività non è disponibile al momento, quindi non può essere acquistata. Non viene addebitato nulla.
Vedi l'APIflow.parallel lancia più capacità del KIT nello stesso momento invece che una dopo l’altra, quando i compiti non dipendono l’uno dall’altro. Il tempo totale è quello del passaggio più lento, non la somma di tutti: più lavoro fatto nella stessa attesa.
Più operazioni, una sola attesa
L’esecuzione in parallelo avvia nello stesso momento più operazioni che non dipendono l’una dall’altra, ognuna con il proprio tipo e i propri dati. Invece di attendere che la prima finisca per far partire la seconda, Lei aspetta solo quanto impiega la più lenta. Le operazioni non condividono informazioni tra loro, ed è proprio questo a renderle sicure: un dato insolito in un ramo non blocca né altera gli altri. Alla fine i risultati arrivano riuniti in un’unica risposta, nello stesso ordine in cui ha inviato le operazioni.
Quando conviene e gli errori comuni
È la scelta naturale per varianti indipendenti dello stesso lavoro: tradurre un testo in più lingue contemporaneamente, trascrivere diversi file della stessa registrazione o controllare versioni di un contenuto pensate per mercati diversi. L’errore più comune è mettere in parallelo passaggi che dipendono dal risultato l’uno dell’altro: in quel caso serve una catena. Un altro è considerare fallito tutto il lavoro per un solo ramo andato storto. Ogni ramo che fallisce viene ritentato fino a tre volte da solo, il risultato indica chiaramente quali sono riusciti e quali no, e i rami falliti non si pagano.
Il tempo che risparmi davvero
Se tre operazioni impiegano ciascuna due secondi, eseguite in sequenza servono sei secondi in totale; eseguite in parallelo il tempo totale resta vicino ai due secondi del compito più lento, perché girano tutte insieme. Il risparmio cresce con il numero di operazioni indipendenti: più ne metti in parallelo, più il vantaggio si nota rispetto a eseguirle una a una, in fila.
Quando invece serve la catena
L’esecuzione in parallelo funziona solo se i passaggi sono davvero indipendenti: nessuno può aver bisogno del risultato di un altro. Se un passaggio deve ricevere l’output del precedente — un testo che va prima estratto e poi tradotto — la catena resta lo strumento giusto. I due si combinano bene: una fase in parallelo dentro una catena più ampia, ad esempio.
Casi d'uso
Stesso testo tradotto in più lingue insieme
Palermo Import Export S.r.l. traduce la stessa scheda prodotto in inglese, francese e tedesco nello stesso momento, invece di aspettare che ogni traduzione finisca prima di lanciare la successiva.
Tre formati generati dallo stesso documento
Rossi & Figli S.r.l. genera contemporaneamente la versione PDF, la versione immagine e il riassunto testuale dello stesso report, invece di produrli uno alla volta.
Controllo di più fornitori nello stesso istante
Ferramenta Colombo S.n.c. verifica in parallelo la partita IVA di cinque nuovi fornitori prima di attivarli come clienti abituali, ottenendo tutti gli esiti in un’unica attesa breve.
Domande frequenti
Che differenza c’è tra questa capacità e flow.chain?
flow.chain esegue i passaggi uno dopo l’altro perché ognuno dipende dal risultato del precedente; flow.parallel li esegue tutti insieme perché sono indipendenti tra loro. La scelta dipende da come i compiti dipendono l’uno dall’altro, non da preferenza.
Cosa succede se una delle operazioni in parallelo fallisce e le altre no?
Le operazioni riuscite restituiscono comunque il loro risultato; quella fallita viene segnalata separatamente, così sai esattamente quale ha avuto un problema senza perdere il lavoro delle altre.
Quante operazioni posso lanciare insieme?
Dipende dal caso d’uso: da due operazioni a un numero maggiore, purché indipendenti tra loro. Ogni operazione aggiunge il proprio costo al totale.
Il prezzo è più alto rispetto a eseguire le stesse operazioni una per una?
Il costo delle singole operazioni è lo stesso; si aggiunge solo la maggiorazione del 20% per il coordinamento, la stessa applicata a flow.chain. Quello che cambia davvero è il tempo di attesa, non il criterio di prezzo di ogni singola operazione.
Posso combinare l’esecuzione in parallelo dentro una catena più lunga?
Sì, è un uso comune: una fase della catena può essere un gruppo di operazioni lanciate in parallelo, il cui risultato combinato alimenta il passaggio successivo della sequenza.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Un POST autenticato crea l'attività; il risultato arriva via webhook o con un link firmato. Questa capacità è disponibile via API, non come strumento web interattivo.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/flow/parallel \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"tasks":[{"type":"ocr.pdf","input":{"pdf":"kit://upl_…"}},{"type":"text.summarize","input":{"text":"…"}}]}'const res = await fetch("https://api.kit.forhosting.com/flow/parallel", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"tasks": [
{
"type": "ocr.pdf",
"input": {
"pdf": "kit://upl_…"
}
},
{
"type": "text.summarize",
"input": {
"text": "…"
}
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/flow/parallel",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"tasks": [
{
"type": "ocr.pdf",
"input": {
"pdf": "kit://upl_…"
}
},
{
"type": "text.summarize",
"input": {
"text": "…"
}
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/flow/parallel", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"tasks":[{"type":"ocr.pdf","input":{"pdf":"kit://upl_…"}},{"type":"text.summarize","input":{"text":"…"}}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"tasks":[{"type":"ocr.pdf","input":{"pdf":"kit://upl_…"}},{"type":"text.summarize","input":{"text":"…"}}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/flow/parallel", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"tasks": [
{
"type": "ocr.pdf",
"input": {
"pdf": "kit://upl_…"
}
},
{
"type": "text.summarize",
"input": {
"text": "…"
}
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "flow.parallel",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Quando aspettare in fila non serve
Se devi ridimensionare tre immagini diverse, o tradurre lo stesso testo in quattro lingue, non c’è motivo di aspettare che finisca la prima prima di iniziare la seconda: sono compiti indipendenti, nessuno ha bisogno del risultato dell’altro. flow.parallel li lancia tutti insieme e aspetta che finiscano, invece di metterli in fila uno dopo l’altro come farebbe una catena, che li tratterebbe come se dipendessero tra loro.
Prezzo calcolato sulla somma dei passaggi
Come nella catena, non c’è un costo fisso proprio: sommi il prezzo di ogni operazione lanciata in parallelo e aggiungi una maggiorazione del 20% per il coordinamento. Tre operazioni da $0.003 ciascuna fanno $0.009, che con la maggiorazione diventano $0.0108, in dollari, prezzo pubblicato prima di eseguire e mai a sorpresa dopo, sulla ricevuta finale che ricevi al termine dell’esecuzione.