diff --git a/src/server/jobs/runAllAdapters.ts b/src/server/jobs/runAllAdapters.ts index 1ba1767a..b04a53d8 100644 --- a/src/server/jobs/runAllAdapters.ts +++ b/src/server/jobs/runAllAdapters.ts @@ -1,6 +1,7 @@ import bridgeNetworks from "../../data/bridgeNetworkData"; import { sql } from "../../utils/db"; import { runAdapterToCurrentBlock } from "../../utils/adapter"; +import { PromisePool } from "@supercharge/promise-pool"; export const runAllAdapters = async () => { const lastRecordedBlocks = await sql`SELECT jsonb_object_agg(bridge_id::text, subresult) as result @@ -17,15 +18,16 @@ export const runAllAdapters = async () => { console.error("Failed to store last recorded blocks"); console.error(e); } + const shuffledBridgeNetworks = bridgeNetworks.sort(() => Math.random() - 0.5); - await Promise.all( - bridgeNetworks.map(async (adapter) => { + await PromisePool.withConcurrency(20) + .for(shuffledBridgeNetworks) + .process(async (adapter) => { try { await runAdapterToCurrentBlock(adapter, true, "upsert", lastRecordedBlocks[0].result); } catch (e) { console.error(`Failed to run adapter ${adapter.bridgeDbName}`); console.error(e); } - }) - ); + }); };