[Redis] bee-queue

김기진·2022년 12월 25일
0

bee-queue 란??


redis 를 이용한 node js 메시지 큐 라이브러리이다.

메시지 큐를 이용한 디바운스 로직을 구현 할 일이 생겨
node js bee-queue 라이브러리 사용법을 정리 해보고자 한다.

Install


npm i bee-queue

큐 생성 하기


bee-queue 생성시 첫번재 인자로 큐의 이름을 넣어준다.

const queue = new Queue('queue');

bee-queue 생성시 두번째 인자로 옵션을 지정 해 줄 수 있다.

activateDelayedJobs 인자를 true 로 설정해서
enqueue 와 message processing 사이에 delay 를 줄 수 있다.

필자는 메시지 큐를 사용한 디바운스 로직을 구현 하기 위해
activateDelayedJobs 필드를 true 로 설정 하였다.

const queue = new Queue('queue', {
  redis: {
    host: 'somewhereElse',
  },
  activateDelayedJobs: true
});

Enqueue


const job = queue.createJob({x: 2, y: 3});

await job
  .delayUntil(Date.now() + 5000)
  .save()

createJob 메소드를 사용 하여
메시지 큐에 적재할 job 을 생성 하였고,

delayUntil 메서드를 사용하여
enqueue 와 message processing 사이에 delay 를 설정 해주었다.

또한 save() 메서드를 사용해 promise 를 반하도록 할 수 있다.

Processing


queue 의 job 메소드를 사용해 메시지를 processing 할 수 있다.

queue.process((job) => { 	// job.data 에 메시지 내용이 들어 있다.
	// do some work with job message
});

다음과 같이 async 함수를 이용해 메시지의 비동기적인 처리도 가능하고

queue.process(async (job) => {
	// do some work with job message
});

다음과 같이 한번에 처리할 메시지 개수를 설정 해주는 것도 가능하다.

queue.process(10 ,(job) => {
	// do some work with job message
});

참고문헌


https://github.com/bee-queue/bee-queue

profile
back-end-developer

0개의 댓글

관련 채용 정보