初次提交
This commit is contained in:
76
src/test/java/SeqTest.java
Normal file
76
src/test/java/SeqTest.java
Normal file
@@ -0,0 +1,76 @@
|
||||
import com.cdhncy.seq.config.GeneratorConfig;
|
||||
import com.cdhncy.seq.config.TableConfig;
|
||||
import com.cdhncy.seq.po.Sequences;
|
||||
import com.cdhncy.seq.generator.Generator;
|
||||
import com.cdhncy.seq.generator.impl.SequencesGenerator;
|
||||
import com.mysql.cj.jdbc.MysqlDataSource;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* @author yanghuanglin
|
||||
* @since 2022/1/28
|
||||
*/
|
||||
public class SeqTest {
|
||||
private static final MysqlDataSource dataSource = new MysqlDataSource();
|
||||
private static final Generator generator;
|
||||
|
||||
static {
|
||||
dataSource.setURL("jdbc:mysql://127.0.0.1:3306/sequence");
|
||||
dataSource.setUser("root");
|
||||
dataSource.setPassword("root");
|
||||
|
||||
GeneratorConfig generatorConfig = new GeneratorConfig(dataSource);
|
||||
TableConfig tableConfig = new TableConfig();
|
||||
// tableConfig.setTable("sequences");
|
||||
// tableConfig.setKeyColumn("SEQUENCE_KEY");
|
||||
// tableConfig.setTypeColumn("SEQUENCE_TYPE");
|
||||
// tableConfig.setSeqColumn("SEQUENCE_NEXT_ID");
|
||||
generatorConfig.setTableConfig(tableConfig);
|
||||
|
||||
generator = new SequencesGenerator(generatorConfig);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generateTest() {
|
||||
//释放未锁定序列号
|
||||
generator.release();
|
||||
|
||||
Set<String> set = new HashSet<>();
|
||||
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 10, 1, TimeUnit.MINUTES, new ArrayBlockingQueue<>(100));
|
||||
for (int i = 0; i < 5; i++) {
|
||||
int finalI = i;
|
||||
threadPoolExecutor.execute(() -> {
|
||||
Sequences sequences = generator.generate("SNT", "MISSION");
|
||||
String formattedSeq = generator.format(sequences.getSeq(), 5, "处〔#year#〕10801#seq#");
|
||||
// if (finalI % 2 == 0)
|
||||
// System.out.println(3 / 0);
|
||||
generator.lock(sequences);
|
||||
set.add(formattedSeq);
|
||||
System.out.println(formattedSeq);
|
||||
});
|
||||
}
|
||||
threadPoolExecutor.shutdown();
|
||||
while (true) {
|
||||
if (threadPoolExecutor.isTerminated())
|
||||
break;
|
||||
}
|
||||
System.out.println(set.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void releaseTest() {
|
||||
generator.release();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void formatTest() {
|
||||
String s = "select * from sequences where `%s`=? and `%s`=?";
|
||||
System.out.println(String.format(s, "key", "value"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user