Comments (6)
@ttshivers It is possible to wire and i don't think it would require too much code
from nestjs.
+1
from nestjs.
Would we want to keep a list of consumer/subscriber promises, do something with rxjs, or just maintain a dumb count of outstanding messages and wait for a given time?
from nestjs.
Any update on this? We're facing the same issue when NestJS app get kill by OS User. the message that still in process within our application is gone forever. So, we explore 2 solution:
- noAck = true
- gracefule shutdown
for the first option is not support by this library but the bottom line is app manual control ack and if app lost connection to rabbitmq server than the server will requeue the message automatically
for second option the bottom line is app will not fetch any new message and wait until process all consumed message then die.
this is critical because we are trusted that all message (100%) that go though rabbitmq must be always get processed.
from nestjs.
Would we want to keep a list of consumer/subscriber promises, do something with rxjs, or just maintain a dumb count of outstanding messages and wait for a given time?
Implementation details I'll leave up to your judgment and our consumers need
from nestjs.
Any update on this? We're facing the same issue when NestJS app get kill by OS User. the message that still in process within our application is gone forever. So, we explore 2 solution:
- noAck = true
- gracefule shutdown
for the first option is not support by this library but the bottom line is app manual control ack and if app lost connection to rabbitmq server than the server will requeue the message automatically
for second option the bottom line is app will not fetch any new message and wait until process all consumed message then die.
this is critical because we are trusted that all message (100%) that go though rabbitmq must be always get processed.
If you must ensure that all messages are processed, then the only guaranteed way by rabbitmq is noAck=false
and only acknowledge the messages after they have been processed.
Your application or host could die or lose power and graceful shutdowns wouldn't save you at all in that case if you had noAck=true
.
from nestjs.
Related Issues (20)
- @nestjs-plus/discovery possible issue with nestjs 10.3.0 HOT 1
- ERROR Error: Channel closed by server: 404 (NOT-FOUND) with message "QueueNotExist, ReqId:659E6FF13837453200DC44F9, ErrorHelp[queue=amq.rabbitmq.reply-to,consumerTag=null,autoAck, https://c.tb.cn/F3.Zro5uI]" HOT 1
- RabbitMQ publish doesn't take advantage of amqp-connection-manager's reliable publish HOT 2
- Separate publisher/consumer connections for rabbitmq HOT 7
- `Subscribe handlers should only return void` logged if using RpcException or RpcExceptionFilter HOT 4
- Support pre-defined consumer tag HOT 1
- [RabbitMQ] AmqpConnection.request() unhandled exception when losing connection HOT 2
- Support Module register with undefined config: RabbitMQModule.forRoot(RabbitMQModule, undefined) HOT 1
- consumer won't re attach to a queue when rabbitmq cluster gets restarted in 1/5 cases
- discover graphql mutations, queries, subscriptions? HOT 2
- Publish new release for @golevelup/nestjs-rabbitmq HOT 1
- Param error in stripe.checkout.sessions.listLineItems
- Publish on AmqpConnection not returning boolean? HOT 1
- Can not npm install on a new project due to reflect-metadata peerDependency HOT 6
- Logging Errors
- @golevelup/ts-jest default mocks return an empty object which is inconsistent with jest.fn() which returns undefined.
- @golevelup/nestjs-rabbitmq- error when publish message: Channel closed
- ts-jest - When function is called with a mock, toHaveBeenCalledWith() always succeed even when it should not
- rabbitmq: allow per subscriber/handler deserializer customization HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nestjs.