TED çevirisi: parçalar 3'lü eşzamanlı — 30 ilanlık liste daha hızlı tamamlanır

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-09-05 17:08:46 +03:00
co-authored by Claude Fable 5.1
parent c32446db81
commit 8e9dff6833
+9 -3
View File
@@ -116,10 +116,16 @@ export async function tedCevir(tenders, { blockMs = 12000 } = {}) {
for (const t of bekleyen) devamEden.add(t.ikn); for (const t of bekleyen) devamEden.add(t.ikn);
const parcalar = []; const parcalar = [];
for (let i = 0; i < bekleyen.length; i += 6) parcalar.push(bekleyen.slice(i, i + 6)); 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 () => { const is = (async () => {
for (const parca of parcalar) { const kuyruk = [...parcalar];
try { await parcayiCevir(parca); } catch (e) { console.warn('[ted-ceviri] parça atlandı:', e.message); } 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))]); await Promise.race([is, new Promise((r) => setTimeout(r, blockMs))]);
return tenders.filter((t) => !t.baslikTr).length; return tenders.filter((t) => !t.baslikTr).length;