medusa에서 구독자 만들기

medusa의 또 다른 멋진 기능은 맞춤형 구독자를 만들 수 있다는 것입니다. 구독자는 특정 이벤트에 의해 트리거되는 작업입니다.

체크아웃this list with all events available .

우리의 경우 생성된 각 제품에 대한 외부 정보를 요청할 수 있도록 product.created 이벤트를 구독하려고 합니다.

레디스 설치



구독자는 Redis를 기반으로 실행되므로 이 작업을 수행하려면 medusa용 Redis를 설정해야 합니다.

먼저 머신에 Redis를 설치합니다. the Redis website 에서 설명서를 따를 수 있습니다.

설치가 완료되면 medusa 서버 프로젝트를 열고 medusa-config.js 파일을 찾습니다.

Redis URL을 정의하는 다음 줄이 표시됩니다. .env 파일을 통해 다른 값으로 설정할 수 있습니다. (그러나 대부분의 경우 이 기본값이 작동합니다.)

const REDIS_URL = process.env.REDIS_URL || 'redis://localhost:6379';


그런 다음 조금 더 낮으면 구성에서 Redis를 활성화해야 합니다.

module.exports = {
  projectConfig: {
    // Turn the line below on
    redis_url: REDIS_URL,
    database_database: './medusa-db.sql',
    database_type: 'sqlite',
    store_cors: STORE_CORS,
    admin_cors: ADMIN_CORS,
  },
  plugins,
};


그리고 그게 다야. 이제 Redis가 활성화되었습니다.

medusa에서 사용자 지정 구독자 만들기



이제 Redis를 설치했으므로 사용자 지정 구독자를 생성해 보겠습니다.

medusa 서버 프로젝트에서 src/subscribers 폴더를 찾고 거기에 productNotifier.js 라는 새 파일을 만듭니다.
신상품 알리미가 되고 싶어서 이 네이밍을 사용하고 있습니다.

각 구독자에 대한 설정은 다음과 같습니다.

class ProductNotifierSubscriber {
  constructor({ eventBusService }) {
    eventBusService.subscribe('product.created', this.handleProduct);
  }

  handleProduct = async (data) => {
    console.log('New product: ' + data.id);
  };
}

export default ProductNotifierSubscriber;


위의 예에서는 제품이 생성될 때마다 트리거되는 product.created 이벤트를 구독합니다.
medusa에게 자체handleProduct 기능을 실행하도록 지시할 수 있습니다.

이 기능 내에서 지금은 제품을 기록합니다.

계속해서 서버를 스풀업하십시오. 이제 관리 포털을 방문하여 새 제품을 추가하십시오.
이제 이 로그를 보여주는 서버 로그가 표시되어야 합니다.



읽어주셔서 감사합니다. 연결해 봅시다!



제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook에 연결하거나

좋은 웹페이지 즐겨찾기