77 lines
2.5 KiB
Java
77 lines
2.5 KiB
Java
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"));
|
||
}
|
||
}
|