diff --git a/apps/insights/src/cache.ts b/apps/insights/src/cache.ts index 140670fc9c..6b1c830c61 100644 --- a/apps/insights/src/cache.ts +++ b/apps/insights/src/cache.ts @@ -9,17 +9,20 @@ const transformer = { deserialize: parse, }; -// export const DEFAULT_CACHE_TTL = 3600; // 1 hour -// export const DEFAULT_CACHE_STALE = 86_400; // 24 hours - - -export const DEFAULT_CACHE_TTL = 60; // 1 minute -export const DEFAULT_CACHE_STALE = 60; // 1 minute +/** + * - API routes will be cached for 1 hour + * - Cached function will be cached for 10 minutes, + * If the function is called within 1 hour, it will + * still be served from the cache, but also fetch the latest data + */ +export const DEFAULT_NEXT_FETCH_TTL = 3600; // 1 hour +export const DEFAULT_REDIS_CACHE_TTL = 60 * 10; // 10 minutes +export const DEFAULT_REDIS_CACHE_STALE = 3600; // 1 hour export const redisCache: ACDCache = createCache({ transformer, - stale: DEFAULT_CACHE_STALE, - ttl: DEFAULT_CACHE_TTL, + stale: DEFAULT_REDIS_CACHE_STALE, + ttl: DEFAULT_REDIS_CACHE_TTL, storage: { type: "redis", options: { @@ -27,8 +30,3 @@ export const redisCache: ACDCache = createCache({ }, }, }); - -export const memoryOnlyCache: ACDCache = createCache({ - ttl: DEFAULT_CACHE_TTL, - stale: DEFAULT_CACHE_STALE, -}); diff --git a/apps/insights/src/server/pyth.ts b/apps/insights/src/server/pyth.ts index f144faabd7..cff93fcd03 100644 --- a/apps/insights/src/server/pyth.ts +++ b/apps/insights/src/server/pyth.ts @@ -1,7 +1,7 @@ import { parse } from "superjson"; import { z } from "zod"; -import { DEFAULT_CACHE_TTL } from "../cache"; +import { DEFAULT_NEXT_FETCH_TTL } from "../cache"; import { VERCEL_REQUEST_HEADERS } from "../config/server"; import { getHost } from "../get-host"; import { Cluster, ClusterToName, priceFeedsSchema } from "../services/pyth"; @@ -18,7 +18,7 @@ export async function getPublishersForFeedRequest( const data = await fetch(url, { next: { - revalidate: DEFAULT_CACHE_TTL, + revalidate: DEFAULT_NEXT_FETCH_TTL, }, headers: VERCEL_REQUEST_HEADERS, }); @@ -38,7 +38,7 @@ export async function getFeedsForPublisherRequest( const data = await fetch(url, { next: { - revalidate: DEFAULT_CACHE_TTL, + revalidate: DEFAULT_NEXT_FETCH_TTL, }, headers: VERCEL_REQUEST_HEADERS, }); @@ -54,7 +54,7 @@ export const getFeedsRequest = async (cluster: Cluster) => { const data = await fetch(url, { next: { - revalidate: DEFAULT_CACHE_TTL, + revalidate: DEFAULT_NEXT_FETCH_TTL, }, headers: VERCEL_REQUEST_HEADERS, }); @@ -82,7 +82,7 @@ export const getFeedForSymbolRequest = async ({ const data = await fetch(url, { next: { - revalidate: DEFAULT_CACHE_TTL, + revalidate: DEFAULT_NEXT_FETCH_TTL, }, headers: VERCEL_REQUEST_HEADERS, }); diff --git a/apps/insights/src/services/pyth/get-feeds.ts b/apps/insights/src/services/pyth/get-feeds.ts index 93cc9ff486..128a85abf6 100644 --- a/apps/insights/src/services/pyth/get-feeds.ts +++ b/apps/insights/src/services/pyth/get-feeds.ts @@ -1,9 +1,9 @@ import { Cluster, priceFeedsSchema } from "."; -import { getPythMetadataCached } from "./get-metadata"; +import { getPythMetadata } from "./get-metadata"; import { redisCache } from "../../cache"; const _getFeeds = async (cluster: Cluster) => { - const unfilteredData = await getPythMetadataCached(cluster); + const unfilteredData = await getPythMetadata(cluster); const filtered = unfilteredData.symbols .filter( (symbol) => diff --git a/apps/insights/src/services/pyth/get-metadata.ts b/apps/insights/src/services/pyth/get-metadata.ts index 66466d3c10..79559f7870 100644 --- a/apps/insights/src/services/pyth/get-metadata.ts +++ b/apps/insights/src/services/pyth/get-metadata.ts @@ -1,11 +1,5 @@ import { clients, Cluster } from "."; -// import { memoryOnlyCache } from "../../cache"; -export const getPythMetadataCached = async (cluster: Cluster) => { +export const getPythMetadata = async (cluster: Cluster) => { return clients[cluster].getData(); }; - -// export const getPythMetadataCached = memoryOnlyCache.define( -// "getPythMetadata", -// getPythMetadata, -// ).getPythMetadata; diff --git a/apps/insights/src/services/pyth/get-publishers-for-cluster.ts b/apps/insights/src/services/pyth/get-publishers-for-cluster.ts index 452a369156..0c6fa5e854 100644 --- a/apps/insights/src/services/pyth/get-publishers-for-cluster.ts +++ b/apps/insights/src/services/pyth/get-publishers-for-cluster.ts @@ -1,9 +1,9 @@ import { Cluster } from "."; -import { getPythMetadataCached } from "./get-metadata"; +import { getPythMetadata } from "./get-metadata"; import { redisCache } from "../../cache"; const _getPublishersForCluster = async (cluster: Cluster) => { - const data = await getPythMetadataCached(cluster); + const data = await getPythMetadata(cluster); const result: Record = {}; for (const key of data.productPrice.keys()) { const price = data.productPrice.get(key);