2013-07-07 12 views
6

Tôi triển khai ứng dụng Rails bằng Unicorn. Sau mỗi lần triển khai và sau mỗi lần chỉnh sửa tôi thực hiện với DB_POOL Tôi thấy bưu điện vẫn giữ một số kết nối là không hoạt động và thay đổi mới rất không nhất quán khiến tôi băn khoăn Nếu khởi động lại ở tất cả dịch vụ sau mỗi lần thay đổi.Có cách nào để khởi động lại postgres trên Heroku không?

Tôi chưa tìm thấy bất kỳ tài liệu nào về vấn đề này. Có lệnh nào tương tự với pg_ctl trên Heroku không?

+0

bản sao có thể có của [Restart Heroku Postgres Dev DB] (http://stackoverflow.com/questions/11949084/restart-heroku-postgres-dev-db) – hd1

+0

Có vẻ như những gì bạn thực sự muốn làm là xóa hồ bơi kết nối của bạn .... nhưng điều đó nói rằng, có vẻ như bạn có lỗi ứng dụng, có thể là nơi bạn đang bị rò rỉ giao dịch, nếu điều này thực sự tạo ra bất kỳ sự khác biệt nào. –

Trả lời

4

Không, bạn không thể khởi động lại cơ sở dữ liệu Postgres của bạn trên Heroku. Nếu bạn có các kết nối kéo dài, đó có thể là sự cố ứng dụng. Hãy thử trong trì hoãn các plugin pg-extras và tìm kiếm IDLE kết nối:

Ngoài ra, bạn có thể thử thiết lập một kết nối ActiveRecord tùy chỉnh trong after_fork khối của bạn và cho phép máy gặt kết nối, mà nên dọn dẹp bất kỳ kết nối chết kéo dài mà nó tìm thấy:

+0

Cảm ơn. Đã làm điều đó trước nhưng vẫn nhận được kết nối nhàn rỗi. – Martin