|
- mod idgen;
-
- use chrono::Utc;
- use idgen::*;
- use std::thread;
- use std::time::Duration;
-
- fn main() {
- println!("Hello, world! Rust");
-
- // 总执行次数
- let times = 500000;
-
- // 是否启用多线程测试
- let multiThread = false;
-
- // 全局设置一次运行参数
- let mut options = IdGeneratorOptions::New(1);
- options.WorkerIdBitLength = 6;
- options.SeqBitLength = 10;
- //... 可以继续设置其它 options 参数
- YitIdHelper::SetIdGenerator(options);
-
- set_redis();
-
- // 以下开始测试生成数据,默认5W,单线程,可以修改 multiThread=true 启用多线程。
- loop {
- let mut i = 0;
- let mut id: i64 = 0;
- let start = Utc::now().timestamp_millis();
-
- while i < times {
- i += 1;
- YitIdHelper::NextId();
-
- // if multiThread { // 这是多线程
- // thread::spawn(move || {
- // id = YitIdHelper::NextId();
- // println!("{}, id: {}", i, id);
- // });
- // } else { // 这是单线程
- // id = YitIdHelper::NextId();
- // }
- }
-
- let end = Utc::now().timestamp_millis();
- println!("单线程用时 {} ms", end - start);
-
- // println!("最后生成的id: {}", id);
- // if !multiThread {
- // // 多线程情况下,时间统计不准确
- // let end = Utc::now().timestamp_millis();
- // println!("单线程用时 {} ms", end - start);
- // }
-
- thread::sleep(std::time::Duration::from_millis(1000));
- }
- }
-
- fn set_redis() {
-
- // match simple_redis::create("redis://127.0.0.1:6379/") {
- // Ok(mut client) => {
- // println!("Created Redis Client");
- //
- // match client.set("my_key", "my_value") {
- // Err(error) => println!("Unable to set value in Redis: {}", error),
- // _ => println!("Value set in Redis")
- // };
- //
- // match client.quit() {
- // Err(error) => println!("Error: {}", error),
- // _ => println!("Connection Closed.")
- // }
- // },
- // Err(error) => println!("Unable to create Redis client: {}", error)
- // }
- }
|