Tarefas em paralelo
O flow.parallel dispara várias tarefas ao mesmo tempo e devolve todas juntas quando a última termina. Quando os passos não dependem um do outro — três tamanhos de uma imagem, cinco páginas para ler —, não faz sentido esperar em fila: o tempo total vira o da tarefa mais lenta, não a soma de todas.
Quando a ordem não importa
Encadear serve para passos que dependem um do outro; o paralelo serve para o oposto — tarefas independentes que só perdem tempo esperando na fila. Se você precisa gerar as versões quadrada, horizontal e vertical de uma imagem, nenhuma depende da outra: rodá-las em sequência triplica a espera à toa. O paralelo dispara as três de uma vez e junta os resultados no fim. A pergunta que decide é simples: um passo precisa do resultado do anterior? Se não, é paralelo.
Dispara tudo, espera uma vez
Você lista as tarefas que devem rodar juntas e a capacidade as dispara ao mesmo tempo. Em vez de somar as esperas, você espera só a mais demorada terminar — e recebe todos os resultados de uma vez, cada um identificado, na mesma resposta. Para lotes de trabalho independente, é a diferença entre um relógio que anda e um que você fica olhando. O paralelismo tem um teto prático de bom senso, mas para o punhado de tarefas do dia a dia sobra folga.
Um ramo falhou, e os outros?
Como os ramos são independentes, a falha de um não derruba os demais: os que deram certo voltam com resultado, e o que falhou volta com o erro, tudo na mesma resposta. Você decide o que fazer com o pedaço que faltou — refazer só ele, seguir sem ele, avisar alguém. Nada de perder três resultados bons porque o quarto tropeçou. É o comportamento que se espera de quem trabalha em frentes paralelas.
O preço de rodar junto
Rodar em paralelo custa o mesmo que rodar em fila: a soma dos passos que executaram mais 20% pela orquestração. O que muda é o relógio, não a conta — três tarefas de US$ 0,01 saem por US$ 0,036, tenham corrido juntas ou uma após a outra. Você paga o trabalho feito e ganha o tempo de graça. Cobrança por uso, preço publicado, sem assinatura.
Casos de uso
Cada foto em três formatos
Uma loja online precisa de cada foto de produto em três formatos — quadrado para o feed, horizontal para o site, vertical para os stories. O paralelo gera os três de uma vez, e o catálogo da Distribuidora Horizonte Verde sai no mesmo tempo de um.
Cinco páginas lidas de uma vez
Rafael Almeida Costa monitora cinco páginas de concorrentes por dia. Em vez de ler uma de cada vez, o paralelo lê as cinco juntas e devolve os resumos na mesma resposta.
Lote de currículos extraído junto
A TecnoSul Soluções Digitais recebe um lote de currículos e precisa do texto de cada um. As extrações rodam em paralelo e o RH recebe todos os textos prontos ao mesmo tempo.
Resumo, versão curta e legenda juntos
Uma agência gera, para cada campanha, o resumo, a versão curta e a legenda de um mesmo texto. Os três saem juntos, e Juliana Nascimento entrega a peça sem esperar três filas.
Perguntas frequentes
Quando usar paralelo em vez de encadear?
Quando os passos não dependem um do outro. Se a tarefa dois precisa do que a um produziu, é cadeia; se as duas podem rodar ao mesmo tempo sem se esperar, é paralelo. A pergunta é sempre essa.
O tempo total é a soma das tarefas?
Não — é o tempo da mais lenta. Cinco tarefas de dez segundos que rodam juntas terminam em cerca de dez segundos, não em cinquenta. Esse é o ganho do paralelo.
Se uma das tarefas falhar, perco as outras?
Não. Os ramos são independentes: os que deram certo voltam com resultado e só o que falhou volta com erro, tudo na mesma resposta. Você decide o que fazer com o que faltou.
Custa mais caro do que rodar em fila?
Não. Mesmo cálculo da cadeia: a soma dos passos mais 20% de orquestração. Três tarefas de US$ 0,01 dão US$ 0,036, rodando juntas ou não. Você paga o trabalho, não a pressa.
Tem limite de quantas tarefas rodam juntas?
Há um teto prático de bom senso para não sobrecarregar, mas para o punhado de tarefas do dia a dia sobra folga. Se o seu caso é de milhares de itens iguais, o caminho é o processamento em lote.
Os dados das tarefas ficam retidos?
Cada tarefa é processada para produzir seu resultado e nada além disso. Os resultados voltam para você na resposta; guardar histórico é papel do seu sistema, não nosso.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/flow/parallel \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'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({
"input": "…"
})
});
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={
"input": "…"
},
)
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" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
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)Exemplo de requisição
{
"input": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "flow.parallel",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |