1.2.4 • Published 3 years ago

@prodevcom/nestjs-pubsub v1.2.4

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

NestJS GCloud Pub/Sub Transporter

Pacote exclusivo para NestJS para gerenciar filas utilizando Google Pub/Sub


Instalação

$ npm i --save @google-cloud/pubsub @prodevcom/nestjs-pubsub

Configurando Cliente

 const options: GCPubSubOptions = {
	topic: 'queue',
	subscription: 'queue-sub',
	client: {
		projectId: 'projeto-filas',
		keyFilename: './credentials.json'
	}
}
const pubsub = new GCPubSubClient(options)

Disparando um Evento

Para este caso, utilizamos o método emit pois vamos disparar um evento sem necessário esperar o retorno.

const alterar = ({ id, body }) => pubsub.emit('alterar-produto', { id, body })
alterar(123, { nome: 'XBox Series X' })

Disparando uma Mensagem

Para este caso, vamos utilizar o método send pois necessitados de uma resposta para o cliente final

return pubsub.send('ver-produto', { id: 123 })

Configurando Servidor

 const options: GCPubSubOptions = {
	topic: 'queue',
	subscription: 'queue-sub',
	client: {
		projectId: 'projeto-filas',
		keyFilename: './credentials.json'
	}
}
const app = await NestFactory.createMicroservice(ApplicationModule, {
  strategy: new GCPubSubServer(options),
});

Recebendo um evento do lado cliente

@MessagePattern('alterar-produto')
update(@Payload() data: any, @Ctx() context: GCPubSubContext) {
	this.service.alterarProduto(data.id, data.body)
	context.ack() // Usar quando a opcão noAck for false
}

Recebendo uma mensagem do lado cliente

@MessagePattern('ver-produto')
get(@Payload() data: any, @Ctx() context: GCPubSubContext) {
	try {
		return this.service.get(data.id)
	} finally {
		context.ack()
	}
}

Fonte de origem do código:

Credit by p-fedyukovich/nestjs-google-pubsub-microservice

Este código segue os padrões fornecidos pelo seu pacote original, apenas contendo algumas alterações para atender os padrões de projetos desenvolvidos internamente.


Não nos responsabilizados por bugs ou erros que possam acontecer ao utilizar esta biblioteca.

Dúvidas: support@prodev.com.br

1.2.4

3 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago