Tôi có trang web chạy ứng dụng đường ray và công nhân resque chạy trong chế độ sản xuất, trên Ubuntu 9.10, Rails 2.3.4, ruby-ee 2010.01, PostgreSQL 8.4.2Rails Resque công nhân thất bại với PGError: máy chủ đóng kết nối bất ngờ
Công nhân liên tục tăng lỗi: PGError: máy chủ đóng kết nối bất ngờ. Dự đoán tốt nhất của tôi là quá trình resque chính thiết lập kết nối với db (ví dụ authlogic thực hiện điều đó khi sử dụng User.acts_as_authentic), trong khi tải các lớp ứng dụng đường ray và kết nối đó bị hỏng trong quá trình fork() ed (khi thoát?) , vì vậy những đứa trẻ được chia rẽ tiếp theo có thể bị phá vỡ toàn cầu ActiveRecord :: Base.connection
Tôi có thể tái tạo hành vi rất giống với điều này sample code bắt chước/xử lý trong công nhân resque. (AFAIK, người dùng libpq được đề nghị tạo lại kết nối trong quá trình chia đôi, nếu không nó không an toàn)
Nhưng điều kỳ lạ là khi tôi sử dụng pgbouncer hoặc pgpool-II thay vì kết nối pgsql trực tiếp, lỗi đó không xuất hiện .
Vì vậy, câu hỏi là ở đâu và làm thế nào tôi nên đào để tìm hiểu lý do tại sao nó bị hỏng cho kết nối đồng bằng và đang làm việc với các hồ bơi kết nối? Hoặc giải pháp hợp lý?
Cảm ơn, vì vậy tôi chỉ cần thêm hook: Resque.after_fork = Proc.new {ActiveRecord :: Base.establish_connection} –
Tôi có thể gặp phải sự cố tương tự. Bạn có thể cho tôi biết làm thế nào và nơi bạn đã thêm "móc"? –
liên kết dưới cùng bị hỏng – botbot