initttt
This commit is contained in:
17
packages/keystore/build.queue.ts
Normal file
17
packages/keystore/build.queue.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { getRedisInstance } from "./index";
|
||||
|
||||
export const APK_BUILD_QUEUE_CHANNEL = "queue:apk-build";
|
||||
|
||||
export async function publishApkBuildSignal(payload: {
|
||||
taskId: string;
|
||||
buildId: string;
|
||||
}) {
|
||||
const redis = getRedisInstance();
|
||||
await redis.connect().catch(() => undefined);
|
||||
await redis.publish(APK_BUILD_QUEUE_CHANNEL, JSON.stringify(payload));
|
||||
}
|
||||
|
||||
export function getApkBuildSubscriber() {
|
||||
const subscriber = getRedisInstance().duplicate();
|
||||
return subscriber;
|
||||
}
|
||||
18
packages/keystore/index.ts
Normal file
18
packages/keystore/index.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Redis } from "ioredis";
|
||||
export * from "ioredis";
|
||||
|
||||
let redis: Redis | undefined;
|
||||
|
||||
let defaultRedisUrl = process.env.REDIS_URL ?? "";
|
||||
|
||||
export function getRedisInstance(url: string = defaultRedisUrl) {
|
||||
if (redis) {
|
||||
return redis;
|
||||
}
|
||||
redis = new Redis(url, {
|
||||
lazyConnect: true,
|
||||
connectTimeout: 5000,
|
||||
commandTimeout: 5000,
|
||||
});
|
||||
return redis;
|
||||
}
|
||||
15
packages/keystore/package.json
Normal file
15
packages/keystore/package.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "@pkg/keystore",
|
||||
"module": "index.ts",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"@types/bun": "latest"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "^5.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"ioredis": "^5.6.1"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user