feature(queue): use postgres instead of redis for buffer

* wip(buffer): initial implementation of psql buffer

* wip(buffer): add both profile and bots buffer
This commit is contained in:
Carl-Gerhard Lindesvärd
2025-01-29 15:17:54 +00:00
committed by Carl-Gerhard Lindesvärd
parent 2b5b8ce446
commit 71bf22af51
16 changed files with 19713 additions and 18747 deletions

View File

@@ -1,2 +1,3 @@
export * from './redis';
export * from './cachable';
export * from './run-every';

View File

@@ -0,0 +1,20 @@
import { getRedisCache } from './redis';
export async function runEvery({
interval,
fn,
key,
}: {
interval: number;
fn: () => Promise<void> | void;
key: string;
}) {
const cacheKey = `run-every:${key}`;
const cacheExists = await getRedisCache().get(cacheKey);
if (cacheExists) {
return;
}
getRedisCache().set(cacheKey, 'true', 'EX', interval);
return fn();
}