misc: add ssl setting for pg boss

This commit is contained in:
Sheen Capadngan
2024-12-09 13:17:04 +08:00
parent 3c588beebe
commit 3f6b1fe3bd
3 changed files with 17 additions and 4 deletions

View File

@@ -53,7 +53,7 @@ export default {
extension: "ts" extension: "ts"
}); });
const smtp = mockSmtpServer(); const smtp = mockSmtpServer();
const queue = queueServiceFactory(cfg.REDIS_URL, cfg.DB_CONNECTION_URI); const queue = queueServiceFactory(cfg.REDIS_URL, { dbConnectionUrl: cfg.DB_CONNECTION_URI });
const keyStore = keyStoreFactory(cfg.REDIS_URL); const keyStore = keyStoreFactory(cfg.REDIS_URL);
const hsmModule = initializeHsmModule(); const hsmModule = initializeHsmModule();

View File

@@ -57,7 +57,11 @@ const run = async () => {
const smtp = smtpServiceFactory(formatSmtpConfig()); const smtp = smtpServiceFactory(formatSmtpConfig());
const queue = queueServiceFactory(appCfg.REDIS_URL, appCfg.DB_CONNECTION_URI); const queue = queueServiceFactory(appCfg.REDIS_URL, {
dbConnectionUrl: appCfg.DB_CONNECTION_URI,
dbRootCert: appCfg.DB_ROOT_CERT
});
await queue.initialize(); await queue.initialize();
const keyStore = keyStoreFactory(appCfg.REDIS_URL); const keyStore = keyStoreFactory(appCfg.REDIS_URL);

View File

@@ -187,7 +187,10 @@ export type TQueueJobTypes = {
}; };
export type TQueueServiceFactory = ReturnType<typeof queueServiceFactory>; export type TQueueServiceFactory = ReturnType<typeof queueServiceFactory>;
export const queueServiceFactory = (redisUrl: string, dbConnectionUrl: string) => { export const queueServiceFactory = (
redisUrl: string,
{ dbConnectionUrl, dbRootCert }: { dbConnectionUrl: string; dbRootCert?: string }
) => {
const connection = new Redis(redisUrl, { maxRetriesPerRequest: null }); const connection = new Redis(redisUrl, { maxRetriesPerRequest: null });
const queueContainer = {} as Record< const queueContainer = {} as Record<
QueueName, QueueName,
@@ -198,7 +201,13 @@ export const queueServiceFactory = (redisUrl: string, dbConnectionUrl: string) =
connectionString: dbConnectionUrl, connectionString: dbConnectionUrl,
archiveCompletedAfterSeconds: 60, archiveCompletedAfterSeconds: 60,
archiveFailedAfterSeconds: 1000, // we want to keep failed jobs for a longer time so that it can be retried archiveFailedAfterSeconds: 1000, // we want to keep failed jobs for a longer time so that it can be retried
deleteAfterSeconds: 30 deleteAfterSeconds: 30,
ssl: dbRootCert
? {
rejectUnauthorized: true,
ca: Buffer.from(dbRootCert, "base64").toString("ascii")
}
: false
}); });
const queueContainerPg = {} as Record<QueueJobs, boolean>; const queueContainerPg = {} as Record<QueueJobs, boolean>;