[
https://issues.apache.org/jira/browse/ROCKETMQ-160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15981083#comment-15981083
]
ASF GitHub Bot commented on ROCKETMQ-160:
-----------------------------------------
Github user coveralls commented on the issue:
https://github.com/apache/incubator-rocketmq/pull/86
[](https://coveralls.io/builds/11211057)
Coverage increased (+0.04%) to 37.891% when pulling
**d86e994c68d8373895c554d543168ef4b5e5d426 on
Jaskey:ROCKETMQ-160-heartbeat-log** into
**6a9628b3c3e6835e37baf7b58ad9300364d4d384 on apache:develop**.
> SendHeartBeart log may not be triggered in the same expected period
> -------------------------------------------------------------------
>
> Key: ROCKETMQ-160
> URL: https://issues.apache.org/jira/browse/ROCKETMQ-160
> Project: Apache RocketMQ
> Issue Type: Improvement
> Components: rocketmq-client
> Reporter: Jaskey Lam
> Assignee: Jaskey Lam
> Priority: Minor
> Fix For: 4.1.0-incubating
>
>
> {code}
> private void sendHeartbeatToAllBroker() {
> final HeartbeatData heartbeatData = this.prepareHeartbeatData();
> final boolean producerEmpty =
> heartbeatData.getProducerDataSet().isEmpty();
> final boolean consumerEmpty =
> heartbeatData.getConsumerDataSet().isEmpty();
> if (producerEmpty && consumerEmpty) {
> log.warn("sending heartbeat, but no consumer and no producer");
> return;
> }
> long times = this.storeTimesTotal.getAndIncrement();//here every time
> when the method is call, the times will increase even though acatully no
> heartbeat is sent
> Iterator<Entry<String, HashMap<Long, String>>> it =
> this.brokerAddrTable.entrySet().iterator();
> while (it.hasNext()) {
> Entry<String, HashMap<Long, String>> entry = it.next();
> String brokerName = entry.getKey();
> HashMap<Long, String> oneTable = entry.getValue();
> if (oneTable != null) {
> for (Map.Entry<Long, String> entry1 : oneTable.entrySet()) {
> Long id = entry1.getKey();
> String addr = entry1.getValue();
> if (addr != null) {
> if (consumerEmpty) {
> if (id != MixAll.MASTER_ID)
> continue;
> }
> try {
> this.mQClientAPIImpl.sendHearbeat(addr,
> heartbeatData, 3000);
> if (times % 20 == 0) {//since the first call is
> times !=1, the heart beat log for the first heart beat could be missed
> log.info("send heart beat to broker[{} {} {}]
> success", brokerName, id, addr);
> log.info(heartbeatData.toString());
> }
> } catch (Exception e) {
> if (this.isBrokerInNameServer(addr)) {
> log.error("send heart beat to broker
> exception", e);
> } else {
> log.info("send heart beat to broker[{} {} {}]
> exception, because the broker not up, forget it", brokerName,
> id, addr);
> }
> }
> }
> }
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)