Какой тайм-аут по умолчанию для команды ioredis send для любого вызова redis

Я использую ioredis с приложением узла, из-за некоторой проблемы в кластере, который я начал получать "Too many Cluster redirections. Last error: Error: Connection is closed."Из-за чего все мои звонки на Redis не выполнялись и через очень долгое время, от 1 секунды до 130 секунд.

Есть ли время ожидания по умолчанию для библиотеки ioredis, которую она использует для подтверждения вызова после отправки команды для выполнения на сервер redis?

Более высокое время сбоя в диапазоне 100 сек при отправке команд на сервер redis, связано ли это с большим размером очереди в redis из-за сбоя кластера?

Образец кода:

this.getData = function(bucketName, userKey) {
  let cacheKey = cacheHelper.formCacheKey(userKey, bucketName);
  let serviceType = cacheHelper.getServiceType(bucketName, cacheConfig.service_config);
  let log_info = _.get(cacheConfig.service_config, 'logging_options.cache_info_level', true);
  let startTime = moment();
  let dataLength = null;
  return Promise.try(function(){
    validations([cacheKey], ['cache_key'], bucketName, serviceType, that.currentService);
    return cacheStore.get(serviceType, cacheKey);
  })
  .then(function(data) {
    dataLength = (data || '').length;
    return cacheHelper.uncompress(data);
  })
  .then(function(uncompressedData) {
    let endTime = moment();
    let responseTime = endTime.diff(startTime, 'miliseconds');
    if(!uncompressedData) {
      if(log_info) logger.consoleLog(bucketName, 'getData', 'miss', cacheKey, that.currentService,
        responseTime, dataLength);
    } else {
      if(log_info) logger.consoleLog(bucketName, 'getData', 'success', cacheKey, that.currentService,
        responseTime, dataLength);
    }
    return uncompressedData;
  })
  .catch(function(err) {
    let endTime = moment();
    let responseTime = endTime.diff(startTime, 'miliseconds');
    logger.error(bucketName, 'getData', err.message, userKey, that.currentService, responseTime);
    throw cacheResponse.error(err);
  });
};

Вот logger.error(bucketName, 'getData', err.message, userKey, that.currentService, responseTime); начал давать время отклика в диапазоне от 1061мс до 109939мс.

Пожалуйста, предоставьте некоторые входные данные.

0 ответов

Другие вопросы по тегам