【发布时间】:2018-04-06 11:47:53
【问题描述】:
我正在尝试检查当前交换是否存在,如果存在我想删除并重新创建。当我不使用try catch 并尝试删除不存在的交换时,我失去了连接并出现错误,如果我尝试删除后不存在,如何创建索引?
export const resetDelayedExchange = (connection ,expectedMessages) => async (message, type) => {
const exchange = getExchange(type)
const channel = await connection.createChannel()
const cleanupDelayedExchange = `${exchange}.${delayedExchange}`
const restoreOnFailure = e => {
channel.assertExchange(cleanupDelayedExchange, delayedExchangeType, {durable: true, arguments: {[delayedMessageType]: 'direct'}})
channel.bindExchange(exchange, cleanupDelayedExchange)
logger.silly(`publishing message to ${cleanupDelayedExchange}`)
channel.publish(cleanupDelayedExchange, '', expectedMessages[type].encode(message).finish(), headerArg)
}
try {
channel.deleteExchange(cleanupDelayedExchange, {ifUnused : false})
connection.on('error', restoreOnFailure)
} catch (error) {
restoreOnFailure(error)
}
}
【问题讨论】:
标签: javascript node.js ecmascript-6 rabbitmq rabbitmq-exchange