Nano Hash - криптовалюты, майнинг, программирование

Проблема тайм-аута запроса Node js

Мое приложение реагирует и вызывает слой node через вызов axios. Затем слой node вызывает внешний слой api, на ответ которого уходит около 7 минут. Однако я получаю ошибку тайм-аута примерно через 2-3 минуты с момента запроса. Когда я вызываю внешний api напрямую (не через уровень узла), я могу получить ответ через 7 минут. Я попытался установить timeout для node, используя такие предложения, как

var http = require('http');
    http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end("Hello World");
    }).on('connection', function(socket) {
      socket.setTimeout(200000000);
    }).listen(3000);

а также с использованием server.timeout, но ничего не работает. Может кто подскажет как решить проблему.

Я получаю следующую ошибку

Сетевая ошибка в createError (webpack-internal:///./node_modules/axios/lib/core/createError.js:16:15

я использую аксиос

axios.post('/api/parseAndExtractFile', formData, config)
  .then((response) => {
    if (response.status === 200) {
      const fileName = `enriched_v3_spec_${new Date().getTime()}`
      const blob = new Blob([(response.data)], {type: 'application/vnd.ms-excel.sheet.macroEnabled.12'})
      saveAs(blob, fileName)
    } else {
      toast.error('Oops, something went wrong. Please try again.', {autoClose: 4000})
    }
    this.setState({
      loading: false,
      showAuditLog: 'show'
    })
  })
  .catch((error) => {
    this.setState({loading: false})
    toast.error(`Error while fetching data ${error}`, {autoClose: 4000})
  })

  • Время ожидания указано в миллисекундах, поэтому 10000 составляет всего 10 секунд, попробуйте увеличить, например, 420000 (7 минут) stackoverflow.com/questions/23925284/ 18.04.2019
  • Я пробовал с тайм-аутом, установленным на 200000000000. Это не работает. 18.04.2019

Ответы:


1

Существует тайм-аут как для узла, так и для аксиом

1) Установка времени ожидания для узла

var http = require('http');
var srvr = http.createServer(function (req, res) {
  res.write('Hello World!');
  res.end();
});
srvr.listen(8080);
srvr.timeout = 20000; // in milliseconds

2) Установка тайм-аута для аксиом

const instance = axios.create({
  baseURL: 'https://some-domain.com/api/',
  timeout: 10000, // in milliseconds
  headers: {'X-Custom-Header': 'foobar'}
});
18.04.2019

2

Я думаю, вы вызываете setTimeOut не в том месте. Возможно, вам потребуется установить createServer в var, а затем вызвать для него setTimeOut следующим образом:

`var http = require('http');
var srv = http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end("Hello World");
})

svr.listen(3000);
svr.setTimeout(10000);

Надеюсь это поможет

18.04.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..