sql >> Database >  >> RDS >> PostgreSQL

Verzoeken lopen vast in PG::Connection#async_exec

Het probleem is opgelost nadat we begonnen met het herstellen van verbindingen met de database. We gebruikten sequel op het project, en Passenger behandelt het probleem zelf alleen wanneer ActiveRecord wordt gebruikt.

Om het uit te breiden, gebruikt Passenger standaard slimme spawning voor ruby-apps. Het spawnt eerst het preloader-proces, dat het framework en alle bibliotheken laadt. Na dat preloader-proces spawnen werkprocessen wanneer dat nodig is, die de verzoeken afhandelen. Bij het spawnen van werkprocessen worden alle bestandsdescriptors overgenomen van het preloader-proces. Dus als u de verbinding met de database niet herstelt, delen alle werkprocessen er één, tot stand gebracht door de preloader. Wat tot allerlei raar gedrag leidt. Like-verzoeken duren te lang.

Daarvoor hebben we ook het afhandelen van WebSocket-verbindingen naar een apart proces verplaatst. Ik weet echter niet zeker of het heeft bijgedragen aan het probleem.

Hier meer over:

Verbinding verbreken bij gebruik van Forking-webserver met vooraf geladen code
Onbedoeld delen van bestandsdescriptoren
De Action Cable-server op dezelfde host en poort draaien, onder een sub-URI




  1. hoe gegevens uit de mysql-database op te halen met php

  2. Een alias van een database maken in SQL Server

  3. waar is oci_bind_by_name voor?

  4. Een ref-cursor retourneren vanuit een Oracle-functie