이 자습서는 대기열 데이터 구조를 설명하고 큐잉 시스템에서의 응용 프로그램을 시연하며 종종 이메일 뉴스 레터 전달과 같은 장기 실행 작업을 처리하는 데 사용됩니다. MongoDB를 메시지 브로커로 사용하여 간단한 노드 작업 큐를 구축 할 것입니다.
요청시 바로 작업을 수행하는 것이 항상 가능하지는 않습니다. 이메일 뉴스 레터 시스템을 상상해보십시오 : 수천 개의 이메일을 즉시 보내면 시스템을 압도 할 것입니다. 마찬가지로 즉시 업로드 된 이미지를 즉시 크기로 조정하면 허용 할 수없는 지연이 생깁니다. 분리 작업은 즉각적인 사용자 응답을 제공하고 백그라운드 프로세스는 작업량을 처리합니다.
주요 개념 :
MongoDB와의 효율적인 대기열 :
확장 가능한 노드 작업 대기열을 구축하기위한 MongoDB의 기능을 활용합니다.
향상된 사용자 경험을위한 분리 : 더 빠른 응답을 위해 사용자 상호 작용에서 작업 처리를 분리하십시오.
기본 대기열 구현 : Queue Management를 위해
JavaScript Array (, ) 또는 ES6 클래스를 사용하십시오.
강력한 대기열 플랫폼 :
엔터프라이즈 레벨 애플리케이션의 경우 Redis, Rabbitmq, Amazon Sqs 등 탐색.
모듈 : MongoDB를 사용하여 node.js의 대기열 관리를 단순화합니다
-
큐 데이터 구조 :
큐는 FIFO (First-in-First-Out) 데이터 구조입니다. 항목은 후면에 추가 (queueued)를 추가하고 전면에서 제거 (탈취).
기본 JavaScript 큐 :
JavaScript 배열을 사용하여 간단한 대기열을 구현할 수 있습니다.
보다 구조화 된 접근 방식은 es6 클래스를 사용합니다 :
-
이들은 덜 중요한 클라이언트 측 작업에 적합하지만 지속성 및 다중 신청 액세스가 부족합니다.
큐잉 플랫폼 (Redis, Rabbitmq 등) :
복잡한 서버 애플리케이션의 경우 전용 메시지 중개인이 제공합니다
데이터 지속성
다중 액세스 프로토콜
다중 대기열
지연 메시징
트랜잭션-유사 지원
게시 패턴을 게시합니다
MongoDB를 메시지 중개인으로 사용하는 : -
우리는 강력하고 쉽게 구현 된 노드 작업 큐에 모듈을 사용합니다.
노드 작업 대기열 프로젝트 설정 :
<.> node.js 14를 설치하십시오
프로젝트 폴더를 만듭니다 ()
- 생성
:
-
queue-test
의 종속성 설치 :
- MongoDB 연결 세부 사항 (예 : , 등)이 포함 된
package.json
파일을 만듭니다.
MongoDB 인스턴스에 Docker Compose를 사용하십시오
(대기열에 추가) : <code class="language-javascript">const queue = [];
queue.push('item 1');
queue.push('item 2');
console.log(queue.shift()); // item 1
console.log(queue.shift()); // item 2</code>
- (대기열에서 처리) :
npm install
-
.env
모듈 세부 사항 : QUEUE_DB_HOST
모듈은 스토리지에 mongodb를 사용합니다. 메소드는 문서를 추가하고 QUEUE_DB_PORT
는 가장 오래된 항목을 검색하고 삭제합니다.
, 및 - 추가 대기열 관리 기능을 제공합니다
결론 :
이 튜토리얼은 MongoDB를 사용하여 node.js에서 작업 대기열을 구현하는 실용적이고 효율적인 방법을 보여줍니다. 이 접근법은 단순성과 확장 성을 균형있게 유지하여 광범위한 응용 프로그램에 적합합니다. 코드와 구성을 특정 요구 사항과 환경에 조정해야합니다. 전체 코드는 GitHub에서 사용할 수 있습니다 (실제 GitHub 리포지토리를 사용할 수있는 경우 링크가 제공됩니다).
위 내용은 대기열 데이터 구조 : 노드 작업 대기열을 빌드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!