@@ -60,7 +60,7 @@ pub async fn insert_records() {
6060 let missing_count: i64 = limit - count;
6161 let mut values: Vec < String > = Vec :: new ( ) ;
6262 for _ in 0 ..missing_count {
63- let random_number: i32 = get_random_id ( ) . await ;
63+ let random_number: i32 = get_random_id ( ) ;
6464 values. push ( format ! ( "(DEFAULT, {})" , random_number) ) ;
6565 }
6666 let sql: String = format ! (
@@ -71,7 +71,7 @@ pub async fn insert_records() {
7171 let _ = query ( & sql) . execute ( & db_pool) . await ;
7272 let mut values: Vec < String > = Vec :: new ( ) ;
7373 for _ in 0 ..missing_count {
74- let random_number: i32 = get_random_id ( ) . await ;
74+ let random_number: i32 = get_random_id ( ) ;
7575 values. push ( format ! ( "(DEFAULT, {})" , random_number) ) ;
7676 }
7777 let sql: String = format ! (
@@ -116,9 +116,19 @@ pub async fn connection_db() -> DbPoolConnection {
116116 ) ,
117117 } ;
118118 let pool_size: u32 = ( get_thread_count ( ) >> 2 ) . max ( 10 ) . min ( 100 ) as u32 ;
119+ let max_pool_size: u32 = option_env ! ( "POSTGRES_MAX_POOL_SIZE" )
120+ . unwrap_or ( & pool_size. to_string ( ) )
121+ . parse :: < u32 > ( )
122+ . unwrap_or ( pool_size) ;
123+ let min_pool_size: u32 = option_env ! ( "POSTGRES_MIN_POOL_SIZE" )
124+ . unwrap_or ( & pool_size. to_string ( ) )
125+ . parse :: < u32 > ( )
126+ . unwrap_or ( pool_size) ;
119127 let pool: DbPoolConnection = PgPoolOptions :: new ( )
120- . max_connections ( pool_size)
128+ . max_connections ( max_pool_size)
129+ . min_connections ( min_pool_size)
121130 . max_lifetime ( None )
131+ . test_before_acquire ( false )
122132 . idle_timeout ( None )
123133 . connect ( db_url)
124134 . await
@@ -137,7 +147,7 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec<QueryRow>) {
137147 let mut id_in_clause: String = format ! ( "{}" , rows[ 0 ] . id) ;
138148 let last_idx: usize = rows. len ( ) - 1 ;
139149 for ( i, row) in rows. iter ( ) . enumerate ( ) {
140- let new_random_number: Queries = get_random_id ( ) . await ;
150+ let new_random_number: Queries = get_random_id ( ) ;
141151 let id: i32 = row. id ;
142152 id_list. push ( id) ;
143153 value_list. push_str ( & format ! ( "WHEN {} THEN {} " , id, new_random_number) ) ;
@@ -171,14 +181,14 @@ pub async fn init_db() {
171181
172182#[ inline]
173183pub async fn random_world_row ( db_pool : & DbPoolConnection ) -> QueryRow {
174- let random_id: Queries = get_random_id ( ) . await ;
184+ let random_id: Queries = get_random_id ( ) ;
175185 query_world_row ( db_pool, random_id) . await
176186}
177187
178188#[ inline]
179189pub async fn query_world_row ( db_pool : & DbPoolConnection , id : Queries ) -> QueryRow {
180190 let sql: String = format ! (
181- "SELECT id, randomNumber FROM {} WHERE id = {}" ,
191+ "SELECT id, randomNumber FROM {} WHERE id = {} LIMIT 1 " ,
182192 TABLE_NAME_WORLD , id
183193 ) ;
184194 if let Ok ( rows) = query ( & sql) . fetch_one ( db_pool) . await {
@@ -208,7 +218,7 @@ pub async fn all_world_row() -> Vec<PgRow> {
208218pub async fn get_some_row_id ( limit : Queries , db_pool : & DbPoolConnection ) -> Vec < QueryRow > {
209219 let mut res: Vec < QueryRow > = Vec :: with_capacity ( limit as usize ) ;
210220 for _ in 0 ..limit {
211- let id: i32 = get_random_id ( ) . await ;
221+ let id: i32 = get_random_id ( ) ;
212222 let tem: QueryRow = query_world_row ( db_pool, id) . await ;
213223 res. push ( tem) ;
214224 }
0 commit comments