diff --git a/server/ted-ceviri.mjs b/server/ted-ceviri.mjs index 71d43b1..889723d 100644 --- a/server/ted-ceviri.mjs +++ b/server/ted-ceviri.mjs @@ -116,10 +116,16 @@ export async function tedCevir(tenders, { blockMs = 12000 } = {}) { for (const t of bekleyen) devamEden.add(t.ikn); const parcalar = []; for (let i = 0; i < bekleyen.length; i += 6) parcalar.push(bekleyen.slice(i, i + 6)); + // Parçalar 3'lü eşzamanlı işlenir: 30 ilanlık liste ~5 yerine ~2 model turunda biter. const is = (async () => { - for (const parca of parcalar) { - try { await parcayiCevir(parca); } catch (e) { console.warn('[ted-ceviri] parça atlandı:', e.message); } - } + const kuyruk = [...parcalar]; + const isci = async () => { + while (kuyruk.length) { + const parca = kuyruk.shift(); + try { await parcayiCevir(parca); } catch (e) { console.warn('[ted-ceviri] parça atlandı:', e.message); } + } + }; + await Promise.all(Array.from({ length: Math.min(3, parcalar.length) }, isci)); })(); await Promise.race([is, new Promise((r) => setTimeout(r, blockMs))]); return tenders.filter((t) => !t.baslikTr).length;