BullJS로 대기열에 넣기
5340 단어 queuejavascriptbulljs
소개
큐는 스택과 유사하게 요소를 시퀀스에 배치하는 데이터 구조입니다. 차이점은 데이터에 액세스하는 방법론입니다. LIFO 개념을 사용하여 작동합니다. 즉, 스택에 추가되는 마지막 항목이 가장 먼저 액세스되는 항목이 되는 반면 대기열은 FIFO를 사용하여 작동하므로 삽입된 첫 번째 항목이 대기열에서 가장 먼저 제거됩니다.
아래 그림을 찾으십시오.
대기줄
스택
가장 일반적인 작업/작업의 순차적 실행을 개발하는 데 대기열을 사용하는 방법에는 여러 가지가 있습니다. 이를 통해 개발자는 한쪽 끝에 작업을 추가하고 처리 후 다른 쪽 끝에서 대기열에 남겨둘 수 있습니다. 일반적으로 FIFO(First In First Out) 방식으로 작동합니다. 즉, 대기열에 도착한 첫 번째 작업이 대기열에 도착한 다음 작업으로 이동하기 전에 일찍 실행됩니다. 실행 후 작업은 다른 쪽 큐에서 제거됩니다.
적합한 대기열:
BullJS
BullJS는 애플리케이션에서 대기열을 구현하는 데 사용할 수 있는 많은 노드 패키지 중 하나입니다. 다른 Queuing 라이브러리와 마찬가지로 FIFO 방법론을 사용합니다.
npm install bull
Bull은 실행 속도가 매우 빠르며 이를 뒷받침하는 기본 기술로 Redis를 사용한다는 사실 덕분입니다. 이는 큐에서 생성되거나 삽입된 데이터가 더 빠른 읽기 및 쓰기를 위해 메모리에 저장됨을 의미합니다. Redis는 실패, 완료 또는 실패한 작업에 대한 콜백 수신을 돕는 게시/구독 메커니즘도 지원합니다.
BullJS를 사용한 대기열 구현 예
이 구현에는 두 부분이 있습니다. 대기열에 추가할 작업을 생성하는 생산자 및 생산자가 추가한 작업을 실행하는 작업을 수행하는 소비자.
소비자는 작업 실행이 완료되면 생산자에게 알려야 합니다.
먼저 redis 구성을 정의하십시오.
const defaultRedisConfig = {
redis: {
host: redisHost,
port: redisPort,
db: redisDatabaseNumber,
},
};
소비자 논리
// Redis server Configuration
const <queue-name> = new Bull("<queue-name>", defaultRedisConfig);
setQueues([
new BullAdapter(<queue-name>),
...
]);
// Consumer processing logic
<queue-name>.process(async (job) => {
// Processing logic
});
생산자 논리
const Bull = require('bull', { redis: defaultRedisConfig });
const <queue-name> = new Bull('tigo-queue');
<queue-name>.add(<Job Data>);
이와 유사한 블로그를 보려면 다음에서 ClickPesa 엔지니어링 블로그를 확인하십시오.
Medium
Hashnode
Reference
이 문제에 관하여(BullJS로 대기열에 넣기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/clickpesa/queueing-with-bulljs-30c3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)