>백엔드 개발 >Golang >사용자 정의 핸들러 nats golang 유지 구독 방법 사용

사용자 정의 핸들러 nats golang 유지 구독 방법 사용

WBOY
WBOY앞으로
2024-02-09 08:30:331119검색

使用自定义处理程序 nats golang 保留订阅方法

php 편집기 Banana는 이 기사에서 구독 방법을 유지하기 위해 사용자 정의 핸들러 nats golang을 사용하는 방법을 소개합니다. 개발 과정에서 비동기 작업을 처리하기 위해 메시지 대기열을 사용해야 하는 경우가 종종 있는데, nats golang은 고성능과 확장성을 갖춘 경량 메시지 대기열 시스템입니다. 핸들러를 사용자 정의함으로써 구독 방법을 유지하고 보다 유연한 메시지 처리 및 프로세스 제어를 달성할 수 있습니다. 아래에서는 이 기능을 nats golang에서 구현하는 방법을 자세히 소개합니다.

질문 내용

golang의 nats 클라이언트 위에 래퍼를 작성 중인데 nats 서버로부터 메시지를 받으면 소비자로부터 호출할 수 있는 핸들러 함수를 얻고 싶습니다. nats로부터 메시지를 받을 때까지 맞춤 구독 방법을 유지하고 싶습니다.

출판사:

으아악

구독:

으아악

테스트 사례:

으아악

메시지가 게시되었지만 구독되지 않은 것을 확인하고 구독 방식을 유지하기 위해 waitgroup을 사용하려고 시도했지만 이것이 올바른 솔루션이 아닌 것 같습니다.

해결 방법

Subscribe은 수신 메시지를 처리하고 콜백을 호출하는 고루틴을 생성하는 비동기 메서드이기 때문에 메시지가 전달되는 것을 볼 수 없습니다.

내부적으로 일어나는 모든 일에 대해서는 busClient.Publish() 之后,您的应用程序立即退出。它不会等待 Subscribe()전화

로 문의하세요.

nats.Subscribe()

사용 시 일반적으로 특정 조건(예: 종료 신호 수신)에서 종료되는 장기 실행 애플리케이션이 있습니다. WaitGroup은 여기에서 작동하지만 아마도 실제 응용 프로그램에서는 작동하지 않고 단지 테스트용일 것입니다.

Flush()프로그램을 종료하기 전에 버퍼링된 모든 메시지가 전송되도록 NATS 연결에서

메서드도 호출해야 합니다.

nats.SubscribeSync()동기화 방법을 원할 경우

를 사용할 수 있습니다. 예시 보기: https://natsbyexample.com/examples/messaging/publish-subscribe/execute

🎜

위 내용은 사용자 정의 핸들러 nats golang 유지 구독 방법 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제