rabbitmq
我用的是amqplib 这个包,github上的项目名是amqp.node
这个包貌似是没有实现断线自动重连的,看了看issues,也和我自己实现的版本差不多。
思路
思路主要是两个地方:
connection实例的error事件.
初始化的promise链报错.
针对这两种情况都去尝试重新连接,因为可能不能立即恢复,所以得隔一段事件重连一次,直到恢复为止。
封装实现
/**
* Mq Factory
* @authors yanjixiong
* @date 2016-07-22 09:56:19
*/
var Connection = require('./Connection');
var Channel = require('./Channel');
var Exchange = require('./Exchange');
var Queue = require('./Queue');
var Consume = require('./Consume');
var ExchangeTypes = require('../constant').ExchangeTypes;
var RouteKey = require('../constant').RouteKey;
var config = require('../../config');
var log = require