File size: 565 Bytes
568021d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import pRetry, { AbortError } from 'p-retry';
import pTimeout from 'p-timeout';

export async function withQwenTimeout<T>(
  fn: () => Promise<T>,
  { totalTimeout = 180_000, retries = 2 } = {}
): Promise<T> {
  return pRetry(
    () => pTimeout(fn(), { milliseconds: totalTimeout }),
    {
      retries,
      onFailedAttempt: (error) => {
        console.error(`qwen3 attempt #${error.attemptNumber} failed: ${error.message}`);
        if (error.retriesLeft === 0) {
          console.error('qwen3 max retries reached, giving up');
        }
      }
    }
  );
}