Tôi chưa có nhiều may mắn khi tìm kiếm thông tin qua google, có thể ai đó ở đây đã gặp sự cố tương tự.Truy vấn postgres chậm trên Heroku không bị gián đoạn bởi giá hết thời gian chờ
Chúng tôi có ứng dụng đường ray chạy trên Heroku với DB Postgres. Chúng tôi có một truy vấn đặc biệt chậm (có, chúng tôi đang cố gắng giải quyết truy vấn), nhưng trong quá trình gỡ lỗi vấn đề này, tôi quan sát thấy rằng đá quý giá trị thời gian chờ của chúng tôi không giết yêu cầu trong 15 giây. Tôi đã thực hiện một kiểm tra bên cạnh bằng cách chèn một giấc ngủ (50) và chắc chắn đủ, rack-timeout đang làm việc một cách chính xác trong trường hợp đó.
Đây là bản sao đã được chỉnh sửa của nhật ký của chúng tôi cho thấy rằng thời gian rack (thời gian hết) đang diễn ra vài phút sau và chúng tôi vẫn thấy H12 Yêu cầu hết thời gian chờ sau 30 giây.
2011-12-14T21:15:16+00:00 app[web.2]: Started GET "/search?utf8=%E2%9C%93&terms=foo" for 173.164.186.205 at Wed Dec 14 13:15:16 -0800 2011
2011-12-14T21:15:16+00:00 app[web.2]: search query elapsed time => [0.000365018844604492]
2011-12-14T21:15:46+00:00 heroku[router]: Error H12 (Request timeout) -> GET /search dyno=web.2 queue= wait= service=30000ms status=503 bytes=0
2011-12-14T21:18:47+00:00 app[postgres]: [6-1] [removed] [COBALT] LOG: duration: 211241.725 ms statement: SELECT [truncated]
2011-12-14T21:18:47+00:00 app[web.2]:
2011-12-14T21:18:47+00:00 app[web.2]: ActionView::Template::Error (Timeout::Error: time's up!: SELECT [truncated]):
Bất kỳ thông tin chi tiết nào về lý do và cách thực thi thời gian chờ?
Cảm ơn bạn đã phản hồi. Những gì tôi đang tìm kiếm là cái nhìn sâu sắc về cách tôi có thể buộc thời gian chờ để cắt bỏ yêu cầu. Chúng tôi đang sử dụng heroku và chúng tôi không chỉ định pg_gem, heroku có. Chúng tôi đang sử dụng cơ sở dữ liệu không được chia sẻ ở phiên bản 9.0.6. – sorens
Thật không may Rack Timeout không thể giết một truy vấn đang chạy. Ứng dụng của bạn sẽ sử dụng đá quý pg trên Heroku vì nó được tiêm bởi quá trình biên dịch sên. –