Batch processing
Create report jobs in small batches, then let webhooks handle completion.
import { Conduit } from "@mappa-ai/conduit"
const conduitClient = new Conduit({ apiKey: process.env.CONDUIT_API_KEY! })
const urls = [
"https://example.com/recording1.mp3",
"https://example.com/recording2.mp3",
"https://example.com/recording3.mp3",
]
async function processBatch(urls: string[], concurrency = 3) {
const receipts = []
for (let i = 0; i < urls.length; i += concurrency) {
const batch = urls.slice(i, i + concurrency)
const created = await Promise.all(
batch.map((url) =>
conduitClient.reports.create({
source: { url },
output: { template: "general_report" },
target: { strategy: "dominant" },
webhook: { url: "https://your-app.com/webhooks/conduit" },
}),
),
)
receipts.push(...created)
}
return receipts
}
const receipts = await processBatch(urls)
console.info(receipts.map((receipt) => receipt.jobId))