Docker Container 환경에서 게임 서버 실행 시, Bull Queue 작업 추가에 문제가 발생했습니다.
MaxRetriesPerRequestError
: Redis 클라이언트에서 발생하는 에러
MaxRetriesPerRequestError
**오류 발생matchEnqueue called
이후에 로그가 찍히지 않고 에러가 발생하는 것을 확인// 기존 코드
import redis from 'redis';
const redisClient = redis.createClient({
url: `redis://${config.redis.redisUsername}:${config.redis.redisPassword}@${config.redis.redisHost}:${config.redis.redisPort}/0`,
});
// 변경 코드
import Redis from 'ioredis';
const redisClient = new Redis({
port: config.redis.redisPort,
host: config.redis.redisHost,
username: config.redis.redisUsername,
password: config.redis.redisPassword,
db: 0,
maxRetriesPerRequest: null,
enableReadyCheck: true,
});
MaxRetriesPerRequestError
가 발생node-redis
라이브러리를 사용하고 있어 MaxRetriesPerRequestError
와 같은 옵션 미적용node-redis
에서 ioredis
로 변경 후 maxRetriesPerRequest
옵션 설정const monsterHitQueue = new Bull('MONSTER_HIT_QUEUE_NAME', {
redis: {
host: config.redis.redisHost,
port: config.redis.redisPort,
},
});