sql >> Databasteknik >  >> RDS >> PostgreSQL

Förfrågningar fastnar i PG::Connection#async_exec

Problemet löstes efter att vi började återupprätta anslutningar till databasen. Vi använde sequel på projektet, och Passenger hanterar själva problemet endast när ActiveRecord används.

För att utöka det använder Passenger som standard smart spawning för ruby-appar. Det skapar först en förinlästerprocess, som laddar ramverket och alla bibliotek. Efter den förinläsningsprocessen skapar arbetsprocesser när behovet uppstår, som hanterar förfrågningarna. När arbetsprocesser skapas ärvs alla filbeskrivningar från förladdningsprocessen. Så om du inte återupprättar anslutningen till databasen, delar alla arbetsprocesser en, etablerad av preloader. Vilket leder till alla möjliga konstiga beteenden. Som att förfrågningar tar för lång tid.

Innan dess flyttade vi även hanteringen av WebSocket-anslutningar till en separat process. Inte säker på om det bidrog till problemet.

Mer om det här:

Koppla från om du använder Forking Webserver med kodförladdning
Oavsiktlig fildeskriptordelning
Köra Action Cable-servern på samma värd och port, under en sub-URI




  1. MYSQL:Kan du få resultat som matchar 3 av 4 uttryck?

  2. hur lägger man till superprivilegier till mysql-databasen?

  3. Installera och konfigurera MySQL Workbench på Ubuntu 16.04

  4. Hur man visar en bild från en mysql blob