You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@rocketmq.apache.org by "JineLee (JIRA)" <ji...@apache.org> on 2017/06/30 09:42:00 UTC

[jira] [Created] (ROCKETMQ-237) ConsumeFromWhere.CONSUME_FROM_TIMESTAMP not work

JineLee created ROCKETMQ-237:
--------------------------------

             Summary: ConsumeFromWhere.CONSUME_FROM_TIMESTAMP not work
                 Key: ROCKETMQ-237
                 URL: https://issues.apache.org/jira/browse/ROCKETMQ-237
             Project: Apache RocketMQ
          Issue Type: Bug
          Components: rocketmq-client
    Affects Versions: 4.0.0-incubating, 4.1.0-incubating
            Reporter: JineLee
            Assignee: Xiaorui Wang


When I create a *New* ConsumeGroup and *setConsumeTimestamp* use the following code:

{code:java}        this.defaultMQPushConsumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_TIMESTAMP);           this.defaultMQPushConsumer.setConsumeTimestamp(MQ_MSG_CONSUME_TIMESTAMP);
{code}

{code:java}
ms.mq.consume.timestamp=20170630120000
{code}

I notice that ReblancePushImpl 161# The field lastOffset always return 0:
Maybe as a new group ,should return -1?

{code:java}
case CONSUME_FROM_TIMESTAMP: {
                long lastOffset = offsetStore.readOffset(mq, ReadOffsetType.READ_FROM_STORE);
                if (lastOffset >= 0) {
                    result = lastOffset;
                } else if (-1 == lastOffset) {
                    if (mq.getTopic().startsWith(MixAll.RETRY_GROUP_TOPIC_PREFIX)) {
                        try {
                            result = this.mQClientFactory.getMQAdminImpl().maxOffset(mq);
                        } catch (MQClientException e) {
                            result = -1;
                        }
                    } else {
                        try {
                            long timestamp = UtilAll.parseDate(this.defaultMQPushConsumerImpl.getDefaultMQPushConsumer().getConsumeTimestamp(),
                                UtilAll.YYYYMMDDHHMMSS).getTime();
                            result = this.mQClientFactory.getMQAdminImpl().searchOffset(mq, timestamp);
                        } catch (MQClientException e) {
                            result = -1;
                        }
                    }
                } else {
                    result = -1;
                }
                break;
            }
{code}





--
This message was sent by Atlassian JIRA
(v6.4.14#64029)