function trip(item, ctx) {
		if (item.state == C.CIRCUIT_OPEN) return;

		item.state = C.CIRCUIT_OPEN;
		item.ep.state = false;

		if (item.cbTimer) {
			clearTimeout(item.cbTimer);
			item.cbTimer = null;
		}

		item.cbTimer = setTimeout(() => halfOpen(item, ctx), item.opts.halfOpenTime);
		item.cbTimer.unref();

		const action = item.ep.action;
		const service = item.service.fullName;

		const rate = item.count > 0 ? item.failures / item.count : 0;
		logger.debug(`Circuit breaker has been opened on '${item.ep.name}' endpoint.`, {
			nodeID: item.ep.id,
			service,
			action: action.name,
			failures: item.failures,
			count: item.count,
			rate
		});
		broker.broadcast("$circuit-breaker.opened", {
			nodeID: item.ep.id,
			service,
			action: action.name,
			failures: item.failures,
			count: item.count,
			rate
		});

		broker.metrics.set(METRIC.MOLECULER_CIRCUIT_BREAKER_OPENED_ACTIVE, 1, {
			affectedNodeID: item.ep.id,
			service,
			action: action.name
		});
		broker.metrics.increment(METRIC.MOLECULER_CIRCUIT_BREAKER_OPENED_TOTAL, {
			affectedNodeID: item.ep.id,
			service,
			action: action.name
		});
	}
Trip the circuit-breaker, change the status to open

@param {Object} item
@param {Context} ctx