@@ -3,6 +3,7 @@ using System.Collections; | |||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Runtime.InteropServices; | using System.Runtime.InteropServices; | ||||
using System.Threading; | using System.Threading; | ||||
using System.Threading.Tasks; | |||||
using Yitter.IdGenerator; | using Yitter.IdGenerator; | ||||
namespace Yitter.OrgSystem.TestA | namespace Yitter.OrgSystem.TestA | ||||
@@ -54,20 +55,23 @@ namespace Yitter.OrgSystem.TestA | |||||
while (true) | while (true) | ||||
{ | { | ||||
RunSingle(); | |||||
// Go(options); | |||||
//CallDll(); | |||||
//RunSingle(); | |||||
//Go(options); | |||||
CallDll(); | |||||
Thread.Sleep(1000); // 每隔1秒执行一次Go | Thread.Sleep(1000); // 每隔1秒执行一次Go | ||||
} | } | ||||
} | } | ||||
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.Cdecl)] | |||||
//[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.StdCall)] | |||||
//public static extern long NextId(); | |||||
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.StdCall)] | |||||
public static extern long NextId(); | public static extern long NextId(); | ||||
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.Cdecl)] | |||||
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.StdCall)] | |||||
public static extern void SetWorkerId(uint workerId); | public static extern void SetWorkerId(uint workerId); | ||||
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.Cdecl)] | |||||
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.StdCall)] | |||||
public static extern int TestId(); | public static extern int TestId(); | ||||
private static void CallDll() | private static void CallDll() | ||||
@@ -78,15 +82,27 @@ namespace Yitter.OrgSystem.TestA | |||||
int i = 0; | int i = 0; | ||||
long id = 0; | long id = 0; | ||||
DateTime start = DateTime.Now; | DateTime start = DateTime.Now; | ||||
bool useMultiThread = false; | |||||
var ids = TestId(); | |||||
//var ids = TestId(); | |||||
//SetWorkerId(1); | //SetWorkerId(1); | ||||
while (i < 50000) | while (i < 50000) | ||||
{ | { | ||||
id = NextId(); | |||||
i++; | i++; | ||||
if (useMultiThread) | |||||
{ | |||||
Task.Run(() => | |||||
{ | |||||
id = NextId(); | |||||
Console.WriteLine("id:" + id); | |||||
}); | |||||
} | |||||
else | |||||
{ | |||||
id = NextId(); | |||||
} | |||||
} | } | ||||
DateTime end = DateTime.Now; | DateTime end = DateTime.Now; | ||||
Console.WriteLine("id:" + id); | Console.WriteLine("id:" + id); | ||||
@@ -0,0 +1,8 @@ | |||||
{ | |||||
"profiles": { | |||||
"Yitter.IdGenTest": { | |||||
"commandName": "Project", | |||||
"nativeDebugging": true | |||||
} | |||||
} | |||||
} |
@@ -12,6 +12,10 @@ | |||||
<PackageLicenseExpression>MIT</PackageLicenseExpression> | <PackageLicenseExpression>MIT</PackageLicenseExpression> | ||||
</PropertyGroup> | </PropertyGroup> | ||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> | |||||
<PlatformTarget>x64</PlatformTarget> | |||||
</PropertyGroup> | |||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\Yitter.IdGenerator\Yitter.IdGenerator.csproj" /> | <ProjectReference Include="..\Yitter.IdGenerator\Yitter.IdGenerator.csproj" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
@@ -9,13 +9,13 @@ | |||||
TAP_DLLEXPORT | TAP_DLLEXPORT | ||||
extern void SetIdGenerator(IdGeneratorOptions options); | |||||
extern void TAP_STDCALL SetIdGenerator(IdGeneratorOptions options); | |||||
TAP_DLLEXPORT | TAP_DLLEXPORT | ||||
extern void SetWorkerId(uint32_t workerId); | |||||
extern void TAP_STDCALL SetWorkerId(uint32_t workerId); | |||||
TAP_DLLEXPORT | TAP_DLLEXPORT | ||||
extern uint64_t NextId(); | |||||
extern uint64_t TAP_STDCALL NextId(); | |||||
TAP_DLLEXPORT | TAP_DLLEXPORT | ||||
extern uint64_t TestId() ; | |||||
extern uint64_t TAP_STDCALL TestId(); |
@@ -5,9 +5,11 @@ | |||||
#ifdef _WIN32 | #ifdef _WIN32 | ||||
#define TAP_CDECL __cdecl | #define TAP_CDECL __cdecl | ||||
#define TAP_STDCALL __stdcall | |||||
#define TAP_DLLEXPORT __declspec(dllexport) | #define TAP_DLLEXPORT __declspec(dllexport) | ||||
#else | #else | ||||
#define TAP_CDECL | #define TAP_CDECL | ||||
#define TAP_STDCALL | |||||
#define TAP_DLLEXPORT | #define TAP_DLLEXPORT | ||||
#endif | #endif | ||||
@@ -24,7 +24,7 @@ void RunMultiThread() { | |||||
//int64_t start = GetCurrentMicroTime(); | //int64_t start = GetCurrentMicroTime(); | ||||
for (int i = 0; i < GenIdCount / threadCount; i++) { | for (int i = 0; i < GenIdCount / threadCount; i++) { | ||||
int64_t id = NextId(); | int64_t id = NextId(); | ||||
printf("生成ID: %D\n", id); | |||||
printf("ID: %D\n", id); | |||||
} | } | ||||
int64_t end = GetCurrentMicroTime(); | int64_t end = GetCurrentMicroTime(); | ||||
@@ -35,11 +35,11 @@ void RunSingle() { | |||||
int64_t start = GetCurrentMicroTime(); | int64_t start = GetCurrentMicroTime(); | ||||
for (int i = 0; i < GenIdCount; i++) { | for (int i = 0; i < GenIdCount; i++) { | ||||
int64_t id = NextId(); | int64_t id = NextId(); | ||||
// printf("生成ID: %ld\n", id); | |||||
// printf("ID: %ld\n", id); | |||||
} | } | ||||
int64_t end = GetCurrentMicroTime(); | int64_t end = GetCurrentMicroTime(); | ||||
printf("%s,total:%d μs\n", method == 1 ? "1" : "2", (end - start)); | |||||
printf("%s, total: %d us\n", method == 1 ? "1" : "2", (end - start)); | |||||
} | } | ||||
int main() { | int main() { | ||||
@@ -1,5 +1,11 @@ | |||||
# idgenerator | # idgenerator | ||||
## | |||||
Go集成专项工程入口:https://gitee.com/yitter/idgenerator-go | |||||
后文内容以 Go 专项工程为准。 | |||||
## Go环境 | ## Go环境 | ||||
1.SDK,go1.16 | 1.SDK,go1.16 | ||||
@@ -1,12 +1,19 @@ | |||||
package main | package main | ||||
import ( | import ( | ||||
"C" | |||||
"fmt" | "fmt" | ||||
"time" | "time" | ||||
"yitidgen/contract" | "yitidgen/contract" | ||||
"yitidgen/gen" | "yitidgen/gen" | ||||
) | ) | ||||
//export NextId | |||||
func NextId() uint64{ | |||||
return gen.GetIns().NextId() | |||||
} | |||||
func main() { | func main() { | ||||
// 方法一:直接采用默认方法生成一个Id | // 方法一:直接采用默认方法生成一个Id | ||||
var yid = gen.YitIdHelper{} | var yid = gen.YitIdHelper{} | ||||
@@ -5,7 +5,12 @@ JDK 1.8+ | |||||
## 引用 maven 包 | ## 引用 maven 包 | ||||
``` | ``` | ||||
<dependency> | |||||
<groupId>com.github.yitter</groupId> | |||||
<artifactId>yitter-idgenerator</artifactId> | |||||
<version>1.0.1</version> | |||||
<type>pom</type> | |||||
</dependency> | |||||
``` | ``` | ||||
## 调用示例 | ## 调用示例 | ||||
@@ -4,23 +4,40 @@ | |||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||
<modelVersion>4.0.0</modelVersion> | <modelVersion>4.0.0</modelVersion> | ||||
<groupId>com.yitter</groupId> | |||||
<artifactId>yitter.idgenerator</artifactId> | |||||
<groupId>com.github.yitter</groupId> | |||||
<artifactId>yitter-idgenerator</artifactId> | |||||
<packaging>jar</packaging> | <packaging>jar</packaging> | ||||
<version>1.0.0</version> | |||||
<version>1.0.1</version> | |||||
<name>yitter.idgenerator</name> | |||||
<description>Shorter ID and faster generation with a new snowflake drift algorithm. The core is to shorten the ID length, but also can have a very high instantaneous concurrent processing capacity (50W/0.1s), and powerful configuration capacity.</description> | |||||
<name>yitter-idgenerator</name> | |||||
<description>Shorter ID and faster generation with a new snowflake drift algorithm. The core is to shorten the ID | |||||
length, but also can have a very high instantaneous concurrent processing capacity (50W/0.1s), and powerful | |||||
configuration capacity. | |||||
</description> | |||||
<url>https://github.com/yitter/idgenerator</url> | |||||
<developers> | <developers> | ||||
<developer> | <developer> | ||||
<id>yitter</id> | <id>yitter</id> | ||||
<name>yitter</name> | <name>yitter</name> | ||||
<email>yitter@126.com</email> | <email>yitter@126.com</email> | ||||
<url>https://gitee.com/yitter/idgenerator</url> | |||||
<url>https://github.com/yitter/idgenerator</url> | |||||
</developer> | </developer> | ||||
</developers> | </developers> | ||||
<scm> | |||||
<connection>scm:git:https://github.com/yitter/idgenerator.git</connection> | |||||
<developerConnection>scm:git:https://github.com/yitter/idgenerator.git</developerConnection> | |||||
<url>https://github.com/yitter/idgenerator.git</url> | |||||
</scm> | |||||
<licenses> | |||||
<license> | |||||
<name>MIT</name> | |||||
<url>https://github.com/yitter/IdGenerator/blob/main/LICENSE</url> | |||||
</license> | |||||
</licenses> | |||||
<properties> | <properties> | ||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | ||||
@@ -30,64 +47,85 @@ | |||||
</properties> | </properties> | ||||
<build> | <build> | ||||
<pluginManagement> | |||||
<plugins> | |||||
<plugin> | |||||
<groupId>org.apache.maven.plugins</groupId> | |||||
<artifactId>maven-compiler-plugin</artifactId> | |||||
<version>3.8.0</version> | |||||
<configuration> | |||||
<source>${java.version}</source> | |||||
<target>${java.version}</target> | |||||
<encoding>UTF-8</encoding> | |||||
</configuration> | |||||
</plugin> | |||||
<plugin> | |||||
<groupId>org.apache.maven.plugins</groupId> | |||||
<artifactId>maven-jar-plugin</artifactId> | |||||
<version>3.1.0</version> | |||||
</plugin> | |||||
<plugin> | |||||
<groupId>org.apache.maven.plugins</groupId> | |||||
<artifactId>maven-surefire-plugin</artifactId> | |||||
<configuration> | |||||
<skip>true</skip> | |||||
</configuration> | |||||
</plugin> | |||||
</plugins> | |||||
</pluginManagement> | |||||
<resources> | |||||
<resource> | |||||
<directory>${project.basedir}</directory> | |||||
<targetPath>META-INF</targetPath> | |||||
<includes> | |||||
<include>LICENSE</include> | |||||
<include>NOTICE</include> | |||||
</includes> | |||||
</resource> | |||||
<resource> | |||||
<directory>src/main/resources</directory> | |||||
<filtering>true</filtering> | |||||
<includes> | |||||
<include>**</include> | |||||
</includes> | |||||
</resource> | |||||
</resources> | |||||
<testResources> | |||||
<testResource> | |||||
<directory>src/test/resources</directory> | |||||
<includes> | |||||
<include>**</include> | |||||
</includes> | |||||
</testResource> | |||||
</testResources> | |||||
<plugins> | |||||
<plugin> | |||||
<groupId>org.apache.maven.plugins</groupId> | |||||
<artifactId>maven-source-plugin</artifactId> | |||||
<version>2.2.1</version> | |||||
<executions> | |||||
<execution> | |||||
<phase>package</phase> | |||||
<goals> | |||||
<goal>jar-no-fork</goal> | |||||
</goals> | |||||
</execution> | |||||
</executions> | |||||
</plugin> | |||||
<plugin> | |||||
<groupId>org.apache.maven.plugins</groupId> | |||||
<artifactId>maven-javadoc-plugin</artifactId> | |||||
<version>3.0.1</version> | |||||
<executions> | |||||
<execution> | |||||
<phase>package</phase> | |||||
<goals> | |||||
<goal>jar</goal> | |||||
</goals> | |||||
</execution> | |||||
</executions> | |||||
</plugin> | |||||
<plugin> | |||||
<groupId>org.apache.maven.plugins</groupId> | |||||
<artifactId>maven-gpg-plugin</artifactId> | |||||
<version>1.5</version> | |||||
<executions> | |||||
<execution> | |||||
<phase>verify</phase> | |||||
<goals> | |||||
<goal>sign</goal> | |||||
</goals> | |||||
</execution> | |||||
</executions> | |||||
</plugin> | |||||
<plugin> | |||||
<groupId>org.sonatype.plugins</groupId> | |||||
<artifactId>nexus-staging-maven-plugin</artifactId> | |||||
<version>1.6.8</version> | |||||
<extensions>true</extensions> | |||||
<configuration> | |||||
<serverId>ossrh</serverId> | |||||
<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl> | |||||
<autoReleaseAfterClose>false</autoReleaseAfterClose> | |||||
</configuration> | |||||
</plugin> | |||||
<plugin> | |||||
<groupId>org.apache.maven.plugins</groupId> | |||||
<artifactId>maven-compiler-plugin</artifactId> | |||||
<version>3.8.1</version> | |||||
<configuration> | |||||
<fork>true</fork> | |||||
<source>${java.version}</source> | |||||
<target>${java.version}</target> | |||||
<encoding>UTF-8</encoding> | |||||
</configuration> | |||||
</plugin> | |||||
<plugin> | |||||
<groupId>org.apache.maven.plugins</groupId> | |||||
<artifactId>maven-jar-plugin</artifactId> | |||||
<version>3.1.0</version> | |||||
</plugin> | |||||
</plugins> | |||||
</build> | </build> | ||||
<licenses> | |||||
<license> | |||||
<name>The Apache Software License, Version 2.0</name> | |||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> | |||||
</license> | |||||
</licenses> | |||||
<distributionManagement> | |||||
<snapshotRepository> | |||||
<id>ossrh</id> | |||||
<url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url> | |||||
</snapshotRepository> | |||||
<repository> | |||||
<id>ossrh</id> | |||||
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url> | |||||
</repository> | |||||
</distributionManagement> | |||||
</project> | </project> |
@@ -2,7 +2,7 @@ | |||||
* 版权属于:yitter(yitter@126.com) | * 版权属于:yitter(yitter@126.com) | ||||
* 开源地址:https://gitee.com/yitter/idgenerator | * 开源地址:https://gitee.com/yitter/idgenerator | ||||
*/ | */ | ||||
package com.yitter.contract; | |||||
package com.github.yitter.contract; | |||||
public interface IIdGenerator { | public interface IIdGenerator { | ||||
long newLong() throws IdGeneratorException; | long newLong() throws IdGeneratorException; |
@@ -2,7 +2,7 @@ | |||||
* 版权属于:yitter(yitter@126.com) | * 版权属于:yitter(yitter@126.com) | ||||
* 开源地址:https://gitee.com/yitter/idgenerator | * 开源地址:https://gitee.com/yitter/idgenerator | ||||
*/ | */ | ||||
package com.yitter.contract; | |||||
package com.github.yitter.contract; | |||||
public interface ISnowWorker { | public interface ISnowWorker { | ||||
long nextId() throws IdGeneratorException; | long nextId() throws IdGeneratorException; |
@@ -2,7 +2,7 @@ | |||||
* 版权属于:yitter(yitter@126.com) | * 版权属于:yitter(yitter@126.com) | ||||
* 开源地址:https://gitee.com/yitter/idgenerator | * 开源地址:https://gitee.com/yitter/idgenerator | ||||
*/ | */ | ||||
package com.yitter.contract; | |||||
package com.github.yitter.contract; | |||||
public class IdGeneratorException extends RuntimeException { | public class IdGeneratorException extends RuntimeException { | ||||
@@ -2,7 +2,7 @@ | |||||
* 版权属于:yitter(yitter@126.com) | * 版权属于:yitter(yitter@126.com) | ||||
* 开源地址:https://gitee.com/yitter/idgenerator | * 开源地址:https://gitee.com/yitter/idgenerator | ||||
*/ | */ | ||||
package com.yitter.contract; | |||||
package com.github.yitter.contract; | |||||
/** | /** | ||||
* 雪花算法使用的参数 | * 雪花算法使用的参数 |
@@ -2,7 +2,7 @@ | |||||
* 版权属于:yitter(yitter@126.com) | * 版权属于:yitter(yitter@126.com) | ||||
* 开源地址:https://gitee.com/yitter/idgenerator | * 开源地址:https://gitee.com/yitter/idgenerator | ||||
*/ | */ | ||||
package com.yitter.contract; | |||||
package com.github.yitter.contract; | |||||
/** | /** | ||||
* Id生成时回调参数 | * Id生成时回调参数 |
@@ -2,12 +2,12 @@ | |||||
* 版权属于:yitter(yitter@126.com) | * 版权属于:yitter(yitter@126.com) | ||||
* 开源地址:https://gitee.com/yitter/idgenerator | * 开源地址:https://gitee.com/yitter/idgenerator | ||||
*/ | */ | ||||
package com.yitter.core; | |||||
package com.github.yitter.core; | |||||
import com.yitter.contract.ISnowWorker; | |||||
import com.yitter.contract.IdGeneratorException; | |||||
import com.yitter.contract.IdGeneratorOptions; | |||||
import com.yitter.contract.OverCostActionArg; | |||||
import com.github.yitter.contract.ISnowWorker; | |||||
import com.github.yitter.contract.IdGeneratorOptions; | |||||
import com.github.yitter.contract.OverCostActionArg; | |||||
import com.github.yitter.contract.IdGeneratorException; | |||||
public class SnowWorkerM1 implements ISnowWorker { | public class SnowWorkerM1 implements ISnowWorker { | ||||
@@ -2,10 +2,10 @@ | |||||
* 版权属于:yitter(yitter@126.com) | * 版权属于:yitter(yitter@126.com) | ||||
* 开源地址:https://gitee.com/yitter/idgenerator | * 开源地址:https://gitee.com/yitter/idgenerator | ||||
*/ | */ | ||||
package com.yitter.core; | |||||
package com.github.yitter.core; | |||||
import com.yitter.contract.IdGeneratorException; | |||||
import com.yitter.contract.IdGeneratorOptions; | |||||
import com.github.yitter.contract.IdGeneratorOptions; | |||||
import com.github.yitter.contract.IdGeneratorException; | |||||
public class SnowWorkerM2 extends SnowWorkerM1 { | public class SnowWorkerM2 extends SnowWorkerM1 { | ||||
@@ -2,14 +2,14 @@ | |||||
* 版权属于:yitter(yitter@126.com) | * 版权属于:yitter(yitter@126.com) | ||||
* 开源地址:https://gitee.com/yitter/idgenerator | * 开源地址:https://gitee.com/yitter/idgenerator | ||||
*/ | */ | ||||
package com.yitter.idgen; | |||||
package com.github.yitter.idgen; | |||||
import com.yitter.contract.ISnowWorker; | |||||
import com.yitter.contract.IdGeneratorException; | |||||
import com.yitter.contract.IdGeneratorOptions; | |||||
import com.yitter.contract.IIdGenerator; | |||||
import com.yitter.core.SnowWorkerM1; | |||||
import com.yitter.core.SnowWorkerM2; | |||||
import com.github.yitter.contract.IIdGenerator; | |||||
import com.github.yitter.contract.ISnowWorker; | |||||
import com.github.yitter.contract.IdGeneratorException; | |||||
import com.github.yitter.contract.IdGeneratorOptions; | |||||
import com.github.yitter.core.SnowWorkerM1; | |||||
import com.github.yitter.core.SnowWorkerM2; | |||||
public class DefaultIdGenerator implements IIdGenerator { | public class DefaultIdGenerator implements IIdGenerator { |
@@ -1,45 +1,43 @@ | |||||
/* | |||||
* 版权属于:yitter(yitter@126.com) | |||||
* 开源地址:https://gitee.com/yitter/idgenerator | |||||
*/ | |||||
package com.yitter.idgen; | |||||
import com.yitter.contract.IdGeneratorException; | |||||
import com.yitter.contract.IdGeneratorOptions; | |||||
import com.yitter.contract.IIdGenerator; | |||||
/** | |||||
* 这是一个调用的例子,默认情况下,单机集成者可以直接使用 nextId()。 | |||||
*/ | |||||
public class YitIdHelper { | |||||
private static IIdGenerator idGenInstance = null; | |||||
public static IIdGenerator getIdGenInstance() { | |||||
return idGenInstance; | |||||
} | |||||
/** | |||||
* 设置参数,建议程序初始化时执行一次 | |||||
* | |||||
* @param options | |||||
*/ | |||||
public static void setIdGenerator(IdGeneratorOptions options) throws IdGeneratorException { | |||||
idGenInstance = new DefaultIdGenerator(options); | |||||
} | |||||
/** | |||||
* 生成新的Id | |||||
* 调用本方法前,请确保调用了 SetIdGenerator 方法做初始化。 | |||||
* | |||||
* @return | |||||
*/ | |||||
public static long nextId() throws IdGeneratorException { | |||||
if (idGenInstance == null) { | |||||
idGenInstance = new DefaultIdGenerator(new IdGeneratorOptions((short) 1)); | |||||
} | |||||
return idGenInstance.newLong(); | |||||
} | |||||
} | |||||
/* | |||||
* 版权属于:yitter(yitter@126.com) | |||||
* 开源地址:https://gitee.com/yitter/idgenerator | |||||
*/ | |||||
package com.github.yitter.idgen; | |||||
import com.github.yitter.contract.IIdGenerator; | |||||
import com.github.yitter.contract.IdGeneratorException; | |||||
import com.github.yitter.contract.IdGeneratorOptions; | |||||
/** | |||||
* 这是一个调用的例子,默认情况下,单机集成者可以直接使用 nextId()。 | |||||
*/ | |||||
public class YitIdHelper { | |||||
private static IIdGenerator idGenInstance = null; | |||||
public static IIdGenerator getIdGenInstance() { | |||||
return idGenInstance; | |||||
} | |||||
/** | |||||
* 设置参数,建议程序初始化时执行一次 | |||||
*/ | |||||
public static void setIdGenerator(IdGeneratorOptions options) throws IdGeneratorException { | |||||
idGenInstance = new DefaultIdGenerator(options); | |||||
} | |||||
/** | |||||
* 生成新的Id | |||||
* 调用本方法前,请确保调用了 SetIdGenerator 方法做初始化。 | |||||
* | |||||
* @return | |||||
*/ | |||||
public static long nextId() throws IdGeneratorException { | |||||
if (idGenInstance == null) { | |||||
idGenInstance = new DefaultIdGenerator(new IdGeneratorOptions((short) 1)); | |||||
} | |||||
return idGenInstance.newLong(); | |||||
} | |||||
} |
@@ -1,6 +1,6 @@ | |||||
package com.yitter.test; | |||||
package com.github.yitter.test; | |||||
import com.yitter.contract.IIdGenerator; | |||||
import com.github.yitter.contract.IIdGenerator; | |||||
import java.util.HashSet; | import java.util.HashSet; | ||||
import java.util.Set; | import java.util.Set; |
@@ -1,9 +1,9 @@ | |||||
package com.yitter.test; | |||||
package com.github.yitter.test; | |||||
import com.yitter.contract.IdGeneratorOptions; | |||||
import com.yitter.contract.IIdGenerator; | |||||
import com.yitter.idgen.DefaultIdGenerator; | |||||
import com.yitter.idgen.YitIdHelper; | |||||
import com.github.yitter.contract.IIdGenerator; | |||||
import com.github.yitter.contract.IdGeneratorOptions; | |||||
import com.github.yitter.idgen.DefaultIdGenerator; | |||||
import com.github.yitter.idgen.YitIdHelper; | |||||
public class StartUp { | public class StartUp { | ||||
@@ -63,6 +63,8 @@ QQ群:646049993 | |||||
6.不依赖任何外部缓存和数据库。(当然 WorkerId 须由外部指定) | 6.不依赖任何外部缓存和数据库。(当然 WorkerId 须由外部指定) | ||||
7.基础功能,开箱即用,无需配置文件、数据库连接等。 | |||||
## 性能数据 | ## 性能数据 | ||||
(参数:10位自增序列,1000次漂移最大值) | (参数:10位自增序列,1000次漂移最大值) | ||||
@@ -0,0 +1,3 @@ | |||||
@echo off | |||||
cargo build --release | |||||
@pause |