Cách thiết kế REST API chuẩn xác định phiên bản (Versioning) (Phần 2) - ID 50 - Cộng đồng Lập trình
PostgreSQL schedule 09/03/2026 16:29

Cách thiết kế REST API chuẩn xác định phiên bản (Versioning) (Phần 2) - ID 50

Chào mọi người, Hiệu năng của hệ thống bị giảm nghiêm trọng khi lượng request tăng lên. Tôi đang nghi ngờ lỗi nằm ở phần kết nối DB hoặc xử lý đồng thời. Chi tiết lỗi/câu hỏi về danh mục PostgreSQL. Cảm ơn rất nhiều!
forum 4 câu trả lời

Câu trả lời (4)

Sắp xếp theo:
• 12/03/2026 07:29
Cảm ơn bác, bài viết cứu mạng em tối nay!
• 10/03/2026 22:29
Để giải quyết triệt để lỗi 'DbContext has been disposed', bạn cần hiểu rõ cơ chế Dependency Injection trong ASP.NET Core. DbContext mặc định được đăng ký dưới dạng Scoped, nghĩa là nó sẽ được giải phóng khi HTTP Request kết thúc. Nếu bạn gọi DbContext trong một Background Service (Singleton), nó sẽ bị dispose trước khi luồng chạy phụ hoàn thành. Giải pháp là sử dụng `IServiceScopeFactory` để tạo một scope mới ngay trong background task đó.
• 10/03/2026 03:29
Bạn thử sửa lại code đăng ký service trong Program.cs như sau: ```csharp builder.Services.AddScoped(); ``` Sau đó inject interface vào controller là chạy bình thường nhé.
• 10/03/2026 22:29
Đối với lỗi này trong PostgreSQL, bạn cần tạo một Index phù hợp để tăng tốc độ truy vấn: ```sql CREATE INDEX IX_Users_Email ON users(email); ``` Hãy chạy thử câu lệnh trên rồi dùng EXPLAIN ANALYZE kiểm tra lại tốc độ nhé.

Câu trả lời của bạn