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

Ошибка тайм-аута соединения Postgres на рельсах heroku

Я искал много вопросов о stackoverflow, но еще не нашел решения своей проблемы.

Я запускал rails 4.0.2 на героку с сервером webrick по умолчанию, и он работал нормально, за исключением того, что я периодически получал следующие ошибки:

ActiveRecord::ConnectionTimeoutError (не удалось установить соединение с базой данных в течение 5 000 секунд (ожидание 5 000 секунд)):

И это приведет к отключению всего сайта на значительный период времени.

Я читал из других ответов, что с рельсами 4.0.x есть проблемы с этим, поэтому я обновился до рельсов 4.1.4 и посмотрю, будет ли проблема продолжаться.

Будем признательны за любую помощь в том, что вызывает это и как это исправить.

ОБНОВИТЬ

Итак, в соответствии с документацией heroku и тем, что я могу найти из связанных вопросов, я обновил свой производственный веб-сервер heroku с webrick на unicorn с указанными здесь конфигурациями по умолчанию:

https://devcenter.heroku.com/articles/rails-unicorn

а также здесь:

https://devcenter.heroku.com/articles/concurrency-and-database-connections

Я посмотрю и посмотрю, будет ли проблема продолжаться.



Ответы:


1

Это должно было быть исправлено в различных выпусках 4.1.x; но на самом деле это исправлено только в 4.2. У меня была эта проблема в течение долгого времени, и обновление до рельсов 4.2, похоже, наконец-то решило ее!

ActiveRecord::ConnectionTimeoutError — не удалось установить соединение с базой данных в течение 5000 секунд (исчерпание пула) больше не должно происходить в правильно работающем приложении, начиная с версии master/future 4.2.0 (#14360). По-прежнему вполне возможно исчерпать ваш пул, если у вас больше потоков, чем соединений, и эти потоки слишком долго висят на соединениях.

https://github.com/rails/rails/issues/12867

24.12.2014
  • та же проблема, что и у Гарри. сначала обновился до rails 41. поскольку некоторые предполагали, что он решил pb, но все еще получал ту же ошибку. Если я обновлю и поставлю свой gemfile 'rails', ~› 4.2.0, я надеюсь решить проблему! 24.12.2014
  • вернулся через 15 дней :) да, обновление до rails 4.2 решило проблему! 12.01.2015
  • Новые материалы

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

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

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

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

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

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

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