Podczas korzystania z Nginx są chwile, w których protokół HTTP 499 jest rejestrowany w dzienniku błędów, gdy klient przedwcześnie zakończył połączenie (na przykład, upłynął czas połączenia, użytkownik ponownie załadował przeglądarkę lub naciśnie klawisz Stop lub Inaczej).Wykrywanie zamknięcia połączenia HTTP w Railsach
Rozumiem, że Nginx jest w stanie to wykryć, ponieważ jest to koniec, który otrzyma sygnał SIGPIPE wskazujący, że gniazdo zostało zamknięte, jednak zastanawiam się, czy w ogóle można zwrócić tę uwagę do Railsów?
Shopify ostatnio użył very novel approach do wykrycia tego w Unicorn przed wysłaniem żądania do Railsów do przetworzenia, jednak chciałbym móc to wykryć w aplikacji Rails, na przykład podczas długotrwałej transakcji.
Z powodu mojej wiedzy (która może być nie tak), nie ma na to rozwiązania. (dlatego Shopify próbuje go wykryć PRZED wysłaniem żądania do Railsów). Problem nie polega nawet na zatrzymywaniu Railsów, ale nie ma sposobu, aby zatrzymać transakcję db w środku i myślę, że to główny problem twojego pytania. –