PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Заявките се забиват в PG::Connection#async_exec

Проблемът беше разрешен, след като започнахме да възстановяваме връзките към базата данни. Използвахме sequel в проекта и Passenger сам се справя с проблема само когато се използва ActiveRecord.

За да го разшири, по подразбиране Passenger използва интелигентно генериране на ruby ​​приложения. Първо ражда процес на предварително зареждане, който зарежда рамката и всички библиотеки. След този процес на предварително зареждане ражда работни процеси, когато възникне необходимост, които обработват заявките. Когато се създават работни процеси, всички файлови дескриптори се наследяват от процеса на предварително зареждане. Така че, ако не възстановите връзката с базата данни, всички работни процеси споделят една, установена от предварителното зареждане. Което води до различни видове странно поведение. Като заявки, които отнемат твърде много време.

Преди това също преместихме обработката на WebSocket връзките в отделен процес. Не съм сигурен обаче дали е допринесло за проблема.

Повече за това тук:

Прекъснете връзката, ако използвате разклонителен уеб сървър с предварително зареждане на код
Неволно споделяне на файлов дескриптор
Изпълнение на сървъра на Action Cable на същия хост и порт, под под-URI




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да дефинирам последователността, която да използвам при създаване на таблица в миграцията на ActiveRecord в Ruby on Rails 5.2?

  2. postgresql безизходица

  3. PG::UndefinedObject:ГРЕШКА:тип hstore не съществува, но съществува

  4. postgresql няма поддръжка за parameterizd заявки

  5. Грешка:Трябва да инсталирате поне един пакет postgresql-client-<version>