getOptimalTimeout method

int getOptimalTimeout(
  1. String url,
  2. int defaultTimeout
)

Gets the optimal timeout for the given URL based on past performance

Implementation

int getOptimalTimeout(String url, int defaultTimeout) {
  final domain = _extractDomain(url);
  if (domain == null) return defaultTimeout;

  if (_siteReputations.containsKey(domain)) {
    final reputation = _siteReputations[domain]!;

    // If the site has timeout issues, increase the timeout
    if (reputation.hasErrorPattern('timeout')) {
      return defaultTimeout * 2;
    }

    // If the site has connection issues, increase the timeout
    if (reputation.hasErrorPattern('connection')) {
      return defaultTimeout * 2;
    }
  }

  return defaultTimeout;
}