Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
PubTools-tools
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liuxingyu
PubTools-tools
Commits
99570a9a
Project 'lxy/Redisson-tools' was moved to 'lxy/pubtools'. Please update any links and bookmarks that may still have the old path.
Commit
99570a9a
authored
Aug 09, 2023
by
liuxingyu
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into 'develop'
首次提交 See merge request lxy/Redisson-tools!1
parents
129ec0f1
de77267c
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
132 additions
and
19 deletions
+132
-19
pom.xml
pom.xml
+1
-1
RedissonLock.java
...in/java/com/mushiny/pubTools/annotation/RedissonLock.java
+2
-2
RedissonLockAspect.java
.../java/com/mushiny/pubTools/aspect/RedissonLockAspect.java
+5
-5
RedissonManager.java
...ain/java/com/mushiny/pubTools/config/RedissonManager.java
+1
-1
PingApiForTestContraller.java
...mushiny/pubTools/controller/PingApiForTestContraller.java
+3
-3
LockType.java
src/main/java/com/mushiny/pubTools/enums/LockType.java
+1
-1
RedissonErrorCode.java
...ava/com/mushiny/pubTools/execption/RedissonErrorCode.java
+1
-1
RedissonException.java
...ava/com/mushiny/pubTools/execption/RedissonException.java
+1
-1
RedissonLockUtil.java
...ain/java/com/mushiny/pubTools/utils/RedissonLockUtil.java
+3
-3
SnowFlakeUtil.java
src/main/java/com/mushiny/pubTools/utils/SnowFlakeUtil.java
+113
-0
MwmsRedissonApplicationTests.java
...va/com/mushiny/pubTools/MwmsRedissonApplicationTests.java
+1
-1
No files found.
pom.xml
View file @
99570a9a
...
...
@@ -8,7 +8,7 @@
<version>
2.7.8
</version>
</parent>
<groupId>
com.mushiny
</groupId>
<artifactId>
redisson
</artifactId>
<artifactId>
pubTools
</artifactId>
<version>
1.1.7-RELEASE
</version>
<packaging>
jar
</packaging>
<properties>
...
...
src/main/java/com/mushiny/
redisson
/annotation/RedissonLock.java
→
src/main/java/com/mushiny/
pubTools
/annotation/RedissonLock.java
View file @
99570a9a
...
...
@@ -6,9 +6,9 @@
* 版权所有,侵权必究!
*/
package
com
.
mushiny
.
redisson
.
annotation
;
package
com
.
mushiny
.
pubTools
.
annotation
;
import
com.mushiny.
redisson
.enums.LockType
;
import
com.mushiny.
pubTools
.enums.LockType
;
import
java.lang.annotation.*
;
import
java.util.concurrent.TimeUnit
;
...
...
src/main/java/com/mushiny/
redisson
/aspect/RedissonLockAspect.java
→
src/main/java/com/mushiny/
pubTools
/aspect/RedissonLockAspect.java
View file @
99570a9a
package
com
.
mushiny
.
redisson
.
aspect
;
package
com
.
mushiny
.
pubTools
.
aspect
;
import
com.mushiny.
redisson
.annotation.RedissonLock
;
import
com.mushiny.
redisson
.execption.RedissonErrorCode
;
import
com.mushiny.
redisson
.execption.RedissonException
;
import
com.mushiny.
pubTools
.annotation.RedissonLock
;
import
com.mushiny.
pubTools
.execption.RedissonErrorCode
;
import
com.mushiny.
pubTools
.execption.RedissonException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.Signature
;
...
...
@@ -35,7 +35,7 @@ public class RedissonLockAspect {
RedissonClient
redissonClient
;
@Pointcut
(
"@annotation(com.mushiny.
redisson
.annotation.RedissonLock)"
)
@Pointcut
(
"@annotation(com.mushiny.
pubTools
.annotation.RedissonLock)"
)
public
void
pointCut
()
{
}
...
...
src/main/java/com/mushiny/
redisson
/config/RedissonManager.java
→
src/main/java/com/mushiny/
pubTools
/config/RedissonManager.java
View file @
99570a9a
package
com
.
mushiny
.
redisson
.
config
;
package
com
.
mushiny
.
pubTools
.
config
;
import
org.redisson.Redisson
;
import
org.redisson.api.RedissonClient
;
...
...
src/main/java/com/mushiny/
redisson
/controller/PingApiForTestContraller.java
→
src/main/java/com/mushiny/
pubTools
/controller/PingApiForTestContraller.java
View file @
99570a9a
package
com
.
mushiny
.
redisson
.
controller
;
package
com
.
mushiny
.
pubTools
.
controller
;
import
com.mushiny.
redisson
.enums.LockType
;
import
com.mushiny.
redisson
.utils.RedissonLockUtil
;
import
com.mushiny.
pubTools
.enums.LockType
;
import
com.mushiny.
pubTools
.utils.RedissonLockUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
src/main/java/com/mushiny/
redisson
/enums/LockType.java
→
src/main/java/com/mushiny/
pubTools
/enums/LockType.java
View file @
99570a9a
...
...
@@ -6,7 +6,7 @@
* 版权所有,侵权必究!
*/
package
com
.
mushiny
.
redisson
.
enums
;
package
com
.
mushiny
.
pubTools
.
enums
;
/**
* 行政区域 级别枚举
...
...
src/main/java/com/mushiny/
redisson
/execption/RedissonErrorCode.java
→
src/main/java/com/mushiny/
pubTools
/execption/RedissonErrorCode.java
View file @
99570a9a
...
...
@@ -6,7 +6,7 @@
* 版权所有,侵权必究!
*/
package
com
.
mushiny
.
redisson
.
execption
;
package
com
.
mushiny
.
pubTools
.
execption
;
/**
* 错误编码,由5位数字组成,前2位为模块编码,后3位为业务编码
...
...
src/main/java/com/mushiny/
redisson
/execption/RedissonException.java
→
src/main/java/com/mushiny/
pubTools
/execption/RedissonException.java
View file @
99570a9a
...
...
@@ -6,7 +6,7 @@
* 版权所有,侵权必究!
*/
package
com
.
mushiny
.
redisson
.
execption
;
package
com
.
mushiny
.
pubTools
.
execption
;
/**
...
...
src/main/java/com/mushiny/
redisson
/utils/RedissonLockUtil.java
→
src/main/java/com/mushiny/
pubTools
/utils/RedissonLockUtil.java
View file @
99570a9a
package
com
.
mushiny
.
redisson
.
utils
;
package
com
.
mushiny
.
pubTools
.
utils
;
import
com.mushiny.
redisson
.execption.RedissonErrorCode
;
import
com.mushiny.
redisson
.execption.RedissonException
;
import
com.mushiny.
pubTools
.execption.RedissonErrorCode
;
import
com.mushiny.
pubTools
.execption.RedissonException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
...
...
src/main/java/com/mushiny/pubTools/utils/SnowFlakeUtil.java
0 → 100644
View file @
99570a9a
package
com
.
mushiny
.
pubTools
.
utils
;
/**
* 描述信息
*
* @auther lxy
* @since 2023/8/9 13:57
*/
public
class
SnowFlakeUtil
{
/**
* 起始时间戳,从2021-12-01开始生成
*/
private
final
static
long
START_STAMP
=
1638288000000L
;
/**
* 序列号占用的位数 12
*/
private
final
static
long
SEQUENCE_BIT
=
12
;
/**
* 机器标识占用的位数
*/
private
final
static
long
MACHINE_BIT
=
10
;
/**
* 机器数量最大值
*/
private
final
static
long
MAX_MACHINE_NUM
=
~(-
1L
<<
MACHINE_BIT
);
/**
* 序列号最大值
*/
private
final
static
long
MAX_SEQUENCE
=
~(-
1L
<<
SEQUENCE_BIT
);
/**
* 每一部分向左的位移
*/
private
final
static
long
MACHINE_LEFT
=
SEQUENCE_BIT
;
private
final
static
long
TIMESTAMP_LEFT
=
SEQUENCE_BIT
+
MACHINE_BIT
;
/**
* 机器标识
*/
private
long
machineId
;
/**
* 序列号
*/
private
long
sequence
=
0L
;
/**
* 上一次时间戳
*/
private
long
lastStamp
=
-
1L
;
/**
* 构造方法
*
* @param machineId 机器ID
*/
public
SnowFlakeUtil
(
long
machineId
)
{
if
(
machineId
>
MAX_MACHINE_NUM
||
machineId
<
0
)
{
throw
new
RuntimeException
(
"机器超过最大数量"
);
}
this
.
machineId
=
machineId
;
}
/**
* 产生下一个ID
*/
public
synchronized
long
nextId
()
{
long
currStamp
=
getNewStamp
();
if
(
currStamp
<
lastStamp
)
{
throw
new
RuntimeException
(
"时钟后移,拒绝生成ID!"
);
}
if
(
currStamp
==
lastStamp
)
{
// 相同毫秒内,序列号自增
sequence
=
(
sequence
+
1
)
&
MAX_SEQUENCE
;
// 同一毫秒的序列数已经达到最大
if
(
sequence
==
0L
)
{
currStamp
=
getNextMill
();
}
}
else
{
// 不同毫秒内,序列号置为0
sequence
=
0L
;
}
lastStamp
=
currStamp
;
return
(
currStamp
-
START_STAMP
)
<<
TIMESTAMP_LEFT
// 时间戳部分
|
machineId
<<
MACHINE_LEFT
// 机器标识部分
|
sequence
;
// 序列号部分
}
private
long
getNextMill
()
{
long
mill
=
getNewStamp
();
while
(
mill
<=
lastStamp
)
{
mill
=
getNewStamp
();
}
return
mill
;
}
private
long
getNewStamp
()
{
return
System
.
currentTimeMillis
();
}
public
static
void
main
(
String
[]
args
)
{
// 192.168.3.104 192.168.3.221测试生成12位id
SnowFlakeUtil
snowFlake1
=
new
SnowFlakeUtil
(
104
);
System
.
out
.
println
(
snowFlake1
.
nextId
());
SnowFlakeUtil
snowFlake2
=
new
SnowFlakeUtil
(
221
);
System
.
out
.
println
(
snowFlake2
.
nextId
());
}
}
src/test/java/com/mushiny/
redisson
/MwmsRedissonApplicationTests.java
→
src/test/java/com/mushiny/
pubTools
/MwmsRedissonApplicationTests.java
View file @
99570a9a
package
com
.
mushiny
.
redisson
;
package
com
.
mushiny
.
pubTools
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment