Skip to content

Commit aaf00a1

Browse files
committed
fix bug.
1 parent d875855 commit aaf00a1

3 files changed

Lines changed: 33 additions & 5 deletions

File tree

txlcn-common/src/main/java/com/codingapi/txlcn/common/util/id/DefaultIdGen.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ public class DefaultIdGen implements IdGen {
2525
*/
2626
private final static long START_STAMP = 1546272000000L;
2727

28-
public DefaultIdGen(int machineOffset, int sequenceOffset, int machineId) {
29-
this.maxSequenceValue = ~(-1 << sequenceOffset);
30-
this.timeOffset = 63 - machineOffset - sequenceOffset;
28+
public DefaultIdGen(int machineLen, int sequenceLen, int machineId) {
29+
this.maxSequenceValue = ~(-1 << sequenceLen);
30+
this.machineOffset = sequenceLen;
31+
this.timeOffset = machineOffset + machineLen;
3132
this.machineId = machineId;
32-
this.machineOffset = machineOffset;
3333
}
3434

3535
@Override

txlcn-common/src/main/java/com/codingapi/txlcn/common/util/id/RandomUtils.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
import java.util.Objects;
1919
import java.util.UUID;
20+
import java.util.concurrent.ExecutorService;
21+
import java.util.concurrent.Executors;
2022

2123
/**
2224
* @author lorne 2018/12/2
@@ -44,8 +46,21 @@ public static String simpleKey() {
4446
return String.valueOf(System.nanoTime());
4547
}
4648

49+
static volatile String last = "";
50+
4751
public static void main(String[] args) {
4852
IdGenInit.applySnowFlakeIdGen(10, 1);
4953
System.out.println(randomKey());
54+
55+
ExecutorService executorService = Executors.newFixedThreadPool(20);
56+
for (int i = 0; i < 100; i++) {
57+
executorService.submit(() -> {
58+
String now = randomKey();
59+
if (now.equals(last)) {
60+
System.out.println("error");
61+
}
62+
last = now;
63+
});
64+
}
5065
}
5166
}

txlcn-tm/src/main/java/com/codingapi/txlcn/tm/txmsg/EnsureIdGenEngine.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.codingapi.txlcn.tm.txmsg;
22

33
import com.codingapi.txlcn.common.runner.TxLcnInitializer;
4+
import com.codingapi.txlcn.common.util.ApplicationInformation;
5+
import com.codingapi.txlcn.common.util.Transactions;
46
import com.codingapi.txlcn.common.util.id.IdGenInit;
57
import com.codingapi.txlcn.logger.TxLogger;
68
import com.codingapi.txlcn.tm.config.TxManagerConfig;
@@ -9,6 +11,8 @@
911
import com.codingapi.txlcn.txmsg.listener.HeartbeatListener;
1012
import com.codingapi.txlcn.txmsg.listener.RpcConnectionListener;
1113
import org.springframework.beans.factory.annotation.Autowired;
14+
import org.springframework.boot.autoconfigure.web.ServerProperties;
15+
import org.springframework.core.env.ConfigurableEnvironment;
1216
import org.springframework.stereotype.Component;
1317

1418
/**
@@ -26,11 +30,18 @@ public class EnsureIdGenEngine implements RpcConnectionListener, HeartbeatListen
2630

2731
private final TxLogger txLogger;
2832

33+
private final ConfigurableEnvironment environment;
34+
35+
private final ServerProperties serverProperties;
36+
2937
@Autowired
30-
public EnsureIdGenEngine(ManagerService managerService, TxManagerConfig managerConfig, TxLogger txLogger) {
38+
public EnsureIdGenEngine(ManagerService managerService, TxManagerConfig managerConfig, TxLogger txLogger,
39+
ConfigurableEnvironment environment, ServerProperties serverProperties) {
3140
this.managerService = managerService;
3241
this.managerConfig = managerConfig;
3342
this.txLogger = txLogger;
43+
this.environment = environment;
44+
this.serverProperties = serverProperties;
3445
}
3546

3647
@Override
@@ -45,6 +56,8 @@ public void disconnect(String remoteKey, String appName) {
4556
@Override
4657
public void init() throws Exception {
4758
IdGenInit.applySnowFlakeIdGen(managerConfig.getMachineIdLen(), managerService.machineIdSync());
59+
60+
Transactions.setApplicationIdWhenRunning(ApplicationInformation.modId(environment, serverProperties));
4861
}
4962

5063
@Override

0 commit comments

Comments
 (0)