You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rocketmq.apache.org by GitBox <gi...@apache.org> on 2019/01/30 03:49:04 UTC
[GitHub] luoxn28 opened a new issue #734: CommitLog.putMessage
setStoreTimestamp repetition
luoxn28 opened a new issue #734: CommitLog.putMessage setStoreTimestamp repetition
URL: https://github.com/apache/rocketmq/issues/734
进入CommitLog.putMessage方法时,会先执行setStoreTimestamp设置时间戳,后面在对putMessageLock加锁后还会执行setStoreTimestamp设置时间戳,后者保证全局消息时间戳的顺序性,从流程来看,前者没必要设置。
```java
public PutMessageResult putMessage(final MessageExtBrokerInner msg) {
// Set the storage time
msg.setStoreTimestamp(System.currentTimeMillis());
// ...省略部分代码
putMessageLock.lock(); //spin or ReentrantLock ,depending on store config
try {
long beginLockTimestamp = this.defaultMessageStore.getSystemClock().now();
this.beginTimeInLock = beginLockTimestamp;
// Here settings are stored timestamp, in order to ensure an orderly
// global
msg.setStoreTimestamp(beginLockTimestamp);
// ...省略部分代码
return putMessageResult;
}
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services