@@ -3,30 +3,30 @@ import { Logger } from "../utils/logger";
3
3
import { Request , Response } from "express" ;
4
4
import os from "os" ;
5
5
import redis from "../utils/redis" ;
6
- import { setTimeout } from "timers/promises " ;
6
+ import { promiseOrTimeout } from "../utils/promise " ;
7
7
8
8
export async function getStatus ( req : Request , res : Response ) : Promise < Response > {
9
9
const startTime = Date . now ( ) ;
10
10
let value = req . params . value as string [ ] | string ;
11
11
value = Array . isArray ( value ) ? value [ 0 ] : value ;
12
12
let processTime , redisProcessTime = - 1 ;
13
- const timeoutPromise = async ( ) : Promise < string > => {
14
- await setTimeout ( 5000 ) ;
15
- return "timeout" ;
16
- } ;
17
13
try {
18
- const dbVersion = await Promise . race ( [ db . prepare ( "get" , "SELECT key, value FROM config where key = ?" , [ "version" ] ) , timeoutPromise ( ) ] )
14
+ const dbVersion = await promiseOrTimeout ( db . prepare ( "get" , "SELECT key, value FROM config where key = ?" , [ "version" ] ) , 5000 )
19
15
. then ( e => {
20
- if ( e === "timeout" ) return e ;
21
16
processTime = Date . now ( ) - startTime ;
22
17
return e . value ;
18
+ } )
19
+ . catch ( e => {
20
+ Logger . error ( `status: SQL query timed out: ${ e } ` ) ;
23
21
} ) ;
24
22
let statusRequests : unknown = 0 ;
25
- const numberRequests = await Promise . race ( [ redis . increment ( "statusRequest" ) , timeoutPromise ( ) ] )
23
+ const numberRequests = await promiseOrTimeout ( redis . increment ( "statusRequest" ) , 5000 )
26
24
. then ( e => {
27
- if ( e === "timeout" ) return [ - 1 ] ;
28
25
redisProcessTime = Date . now ( ) - startTime ;
29
26
return e ;
27
+ } ) . catch ( e => {
28
+ Logger . error ( `status: redis increment timed out ${ e } ` ) ;
29
+ return [ - 1 ] ;
30
30
} ) ;
31
31
statusRequests = numberRequests ?. [ 0 ] ;
32
32
0 commit comments