New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Catch if Rabbit server is down #1
Comments
@ebadia, thanks for report! I'll look into this issue. I think I'll need to add additional check in package. |
Thanks for making this work so well with nestjs! Just as an idea, I saw that in connect you only return the resolve case, perhaps rejecting the promise could help. |
@ebadia, I updated package to 0.1.1 with better connection management system. Now you can catch error on client: try {
return this.client.send<string, string>({ cmd: 'test' }, msg);
} catch (err) {
console.log('Error:' + err);
} And server and client will reconnect when RMQ server will be available (if it was down): Furthermore, I added support for clustering. You can specify more then one url on client or server: client = new ClientRMQ({
urls: [`amqp://login:password@host`],
queue: 'test',
queueOptions: { durable: false }
}); Please note that now you need to use |
That's great, I'll give it a try. Thanks. |
@AlariCode this solves the error problem when sending the message. And for sure it's great. But the system still returns an error message when I try to do the new ClientRMQ
It seems that we have an unhandled promise rejection there too. This does not stops the app and the try/catch you have added helps a lot. But perhaps this "warning" should be considered for the future. |
@ebadia this is strange. It connects only when first message is sent. This code: const client = new ClientRMQ({
urls: [`amqp://${config.default.localhost.amqp.login}:${config.default.localhost.amqp.password}@${config.default.localhost.amqp.host}`],
queue: 'test',
queueOptions: { durable: false },
}); doesn't cause client to connect. And this one does: this.client.send<string, string>({ cmd: 'test' }, msg); Could you please show you code with error? This example catches an error perfectly: @Controller()
export class AppController {
client = new ClientRMQ({
urls: [`amqp://${config.default.localhost.amqp.login}:${config.default.localhost.amqp.password}@${config.default.localhost.amqp.host}`],
queue: 'test',
queueOptions: { durable: false },
});
@Get('a')
a(): Observable<string> {
try {
return this.client.send<string, string>({ cmd: 'test' }, 'test');
} catch (err) {
console.log('Got error: ' + err);
}
}
} |
@AlariCode Sorry, my fault... I did not upgrade the package to incude the changes... Now the error message has disapeared. Thanks! |
Thanks for bug report! I’m closing this issue. |
How can I check if the RabbitMQ server is down?
In the client, I shutdown RabbitMQ local server to check if I can catch the error but all I receive is:
This happens as a response to
The text was updated successfully, but these errors were encountered: