diff options
Diffstat (limited to 'apps/workers/feedWorker.ts')
| -rw-r--r-- | apps/workers/feedWorker.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/apps/workers/feedWorker.ts b/apps/workers/feedWorker.ts index 1bd24641..2f2c80f5 100644 --- a/apps/workers/feedWorker.ts +++ b/apps/workers/feedWorker.ts @@ -1,5 +1,6 @@ import { and, eq, inArray } from "drizzle-orm"; import { DequeuedJob, Runner } from "liteque"; +import cron from "node-cron"; import Parser from "rss-parser"; import { buildImpersonatingTRPCClient } from "trpc"; @@ -10,6 +11,35 @@ import logger from "@hoarder/shared/logger"; import { FeedQueue } from "@hoarder/shared/queues"; import { BookmarkTypes } from "@hoarder/shared/types/bookmarks"; +export const FeedRefreshingWorker = cron.schedule( + "0 * * * *", + () => { + logger.info("[feed] Scheduling feed refreshing jobs ..."); + db.query.rssFeedsTable + .findMany({ + columns: { + id: true, + }, + }) + .then((feeds) => { + for (const feed of feeds) { + FeedQueue.enqueue( + { + feedId: feed.id, + }, + { + idempotencyKey: feed.id, + }, + ); + } + }); + }, + { + runOnInit: false, + scheduled: false, + }, +); + export class FeedWorker { static build() { logger.info("Starting feed worker ..."); |
