diff --git a/src/index.ts b/src/index.ts index 896462f..6205ddc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -289,11 +289,17 @@ const main = async () => { const recursiveFetch = (delay = WS_FALLBACK_FETCH_INTERVAL) => { setTimeout(() => { const startFetch = Date.now(); - dlobProvider.fetch().then(() => { - gpaFetchDurationHistogram.record(Date.now() - startFetch); - // eslint-disable-next-line @typescript-eslint/no-unused-vars - recursiveFetch(); - }); + dlobProvider + .fetch() + .then(() => { + gpaFetchDurationHistogram.record(Date.now() - startFetch); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + recursiveFetch(); + }) + .catch(() => { + logger.error('Failed to fetch GPA'); + recursiveFetch(); + }); }, delay); }; recursiveFetch(); diff --git a/src/publishers/dlobPublisher.ts b/src/publishers/dlobPublisher.ts index 03fc706..9f7d311 100644 --- a/src/publishers/dlobPublisher.ts +++ b/src/publishers/dlobPublisher.ts @@ -30,6 +30,7 @@ import { getDLOBProviderFromOrderSubscriber, getDLOBProviderFromUserMap, } from '../dlobProvider'; +import FEATURE_FLAGS from '../utils/featureFlags'; require('dotenv').config(); const stateCommitment: Commitment = 'processed'; @@ -229,10 +230,22 @@ const main = async () => { spotMarketSubscribers: MARKET_SUBSCRIBERS, }); await dlobSubscriber.subscribe(); - if (useWebsocket) { - setInterval(async () => { - await dlobProvider.fetch(); - }, WS_FALLBACK_FETCH_INTERVAL); + if (useWebsocket && !FEATURE_FLAGS.DISABLE_GPA_REFRESH) { + const recursiveFetch = (delay = WS_FALLBACK_FETCH_INTERVAL) => { + setTimeout(() => { + dlobProvider + .fetch() + .then(() => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + recursiveFetch(); + }) + .catch(() => { + logger.error('Failed to fetch GPA'); + recursiveFetch(); + }); + }, delay); + }; + recursiveFetch(); } console.log('DLOBSubscriber Publishing Messages');