PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Khi gọi DB ::chọn tại sao tôi nhận được thông báo Kết nối đã được đặt lại?

Phần khó của việc này là trình duyệt không chịu tiết lộ bất kỳ dạng thông báo lỗi nào. Khi điều đó xảy ra, tôi muốn đi tới dòng lệnh và thử nó, do đó loại bỏ máy chủ web như một biến.

Từ cuộc trò chuyện, chúng tôi biết rằng dòng lệnh đã hiển thị lỗi như mong đợi, nhưng không làm như vậy một cách duyên dáng:lỗi xuất hiện và tập lệnh bị tạm dừng. Đó là một sự cố nghiêm trọng, một sự cố không phải do máy chủ web.

Với sự ra đời của \Throwable , các kịch bản mà PHP chết cứng ngày càng trở nên ít hơn. Vì vậy, với nỗ lực bắt kịp hơi thở đang chết dần của PHP, chúng tôi đã triển khai register_shutdown_function điều đó đã kéo error_get_last trong nỗ lực tìm ra những gì, nếu có, đã được nói ngay trước khi nổ tung.

Điều này đã tiết lộ một cách ngắn gọn, thông báo lỗi trong trình duyệt (lần này là sử dụng một trình duyệt khác). Tuy nhiên, điều này đã không thể lặp lại. Thông tin chi tiết tại thời điểm này là bộ nhớ đệm:composer dump-autoload đã khắc phục sự cố!

Tôi nghi ngờ điều gì đã xảy ra là thế này:

  • Eloquent đã ném một ngoại lệ
  • PHP đã tạo ra điều đó thông qua các lớp xử lý ngoại lệ của Laravel
  • Tại một số thời điểm, PHP đã cố gắng tải một lớp không có trong trình tải tự động
  • PHP gặp sự cố khó khăn (đây là một trong những trường hợp PHP 7.0 gặp sự cố)

Bằng cách chạy composer dump-autoload , tất cả các lớp "bị thiếu" đã được đưa vào mục đích của trình tải tự động và khi thử lại, trình tự mã chính xác đã xảy ra.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql - Làm thế nào để tăng tốc độ cập nhật bảng khổng lồ (100 triệu hàng)?

  2. PostgreSQL sửa đổi động các trường trong bản ghi MỚI trong một hàm kích hoạt

  3. Truy vấn tổng hợp trên hơn 50 triệu bảng hàng trong PostgreSQL

  4. Lệnh kích thước DB của Postgres

  5. Nhận sự khác biệt của trường khác giữa dấu thời gian đầu tiên và cuối cùng của nhóm