Files
speckle-server/packages/server/modules/shared/redis/redis.ts
T
Iain Sproat 26b0ecb55d chore(server): remove sentry and only apply mixpanel middleware if enabled (#2732)
- remove sentry as we are no longer using it
- only enable mixpanel middleware if mixpanel is enabled
2024-08-23 16:56:54 +01:00

29 lines
1.1 KiB
TypeScript

import { redisLogger } from '@/logging/logging'
import Redis, { RedisOptions } from 'ioredis'
import {
EnvironmentResourceError,
MisconfiguredEnvironmentError
} from '@/modules/shared/errors'
export function createRedisClient(redisUrl: string, redisOptions: RedisOptions): Redis {
let redisClient: Redis
try {
redisClient = new Redis(redisUrl, redisOptions)
redisClient.on('error', (err) => {
redisLogger.error(err, 'Redis encountered an error.')
if (err instanceof Error) {
throw new EnvironmentResourceError('Redis encountered an error.', err) //FIXME backoff and retry?
}
throw new EnvironmentResourceError('Redis encountered an error.') //FIXME backoff and retry?
})
} catch (err) {
redisLogger.error(err, 'Could not create Redis client')
if (err instanceof Error) {
throw new MisconfiguredEnvironmentError('Unable to connect to Redis.', err) //FIXME backoff and retry?
}
throw new MisconfiguredEnvironmentError('Unable to connect to Redis.') //FIXME backoff and retry?
}
return redisClient
}