Skip to content

Commit

Permalink
refactor: Improve cached feed update logic and error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
TimDaub committed Feb 12, 2025
1 parent 40930c9 commit 60a85da
Showing 1 changed file with 24 additions and 10 deletions.
34 changes: 24 additions & 10 deletions src/http.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -92,16 +92,6 @@ const app = express();
const server = createServer(app);

let cachedFeed = null;
(async function updateCachedFeed() {
try {
cachedFeed = await feed(trie, theme, 0, null, undefined, undefined);
log("Cached feed updated");
} catch (err) {
log("Failed to update cached feed: " + err);
cachedFeed = null;
}
setTimeout(updateCachedFeed, 30000);
})();

app.set("etag", false);
app.use((req, res, next) => {
Expand Down Expand Up @@ -201,6 +191,30 @@ export async function launch(trie, libp2p) {
const wss = new ws.Server({ noServer: true });
const clients = new Set();

try {
cachedFeed = await feed(trie, theme, 0, null, undefined, undefined);
log("Cached feed updated");
} catch (err) {
log("Failed to update cached feed: " + err);
cachedFeed = null;
}
(function updateCachedFeed() {
setTimeout(async () => {
const startTime = Date.now();
try {
const newFeed = await feed(trie, theme, 0, null, undefined, undefined);
cachedFeed = newFeed;
const elapsed = Date.now() - startTime;
log(`Cached feed updated in ${elapsed}ms`);
} catch (err) {
log("Failed to update cached feed: " + err);
// Retain existing cachedFeed to avoid response delays.
} finally {
updateCachedFeed();
}
}, 30000);
})();

app.use((err, req, res, next) => {
log(`Express error: "${err.message}", "${err.stack}"`);
res.status(500).send("Internal Server Error");
Expand Down

0 comments on commit 60a85da

Please sign in to comment.