sql >> Database teknologi >  >> RDS >> PostgreSQL

Anmodninger sidder fast i PG::Connection#async_exec

Problemet blev løst, efter at vi begyndte at genetablere forbindelser til databasen. Vi brugte sequel på projektet, og Passenger håndterer kun problemet selv, når ActiveRecord bruges.

For at udvide det bruger Passenger som standard smart spawning til rubin-apps. Det afføder først preloader-processen, som indlæser rammeværket og alle bibliotekerne. Efter den præloader-proces afføder arbejdsprocesser, når behovet opstår, som håndterer anmodningerne. Når arbejdsprocesser gydes, nedarves alle filbeskrivelser fra preloader-processen. Så hvis du ikke genopretter forbindelsen til databasen, deler alle arbejdsprocesser én, etableret af preloader. Hvilket fører til alle mulige mærkelige adfærd. Ligesom anmodninger tager for lang tid.

Før det flyttede vi også håndteringen af ​​WebSocket-forbindelser til en separat proces. Ikke sikker på, om det bidrog til problemet.

Mere om det her:

Afbryd forbindelsen, hvis du bruger Forking Webserver med kodeindlæsning
Utilsigtet fildeskriptordeling
Køring af Action Cable-serveren på den samme vært og port under en under-URI




  1. Batch flere udvalgte erklæringer, når du ringer til Oracle fra ADO.NET

  2. hvordan man bruger korrekt if-sætning postgresql

  3. Strategier til at håndtere konstant skiftende krav til MySQL-skemaer?

  4. Hvorfor går mysql-forbindelsen i stykker (mistede forbindelsen til MySQL-serveren under forespørgselsfejl)