Giả sử, về mặt lý thuyết, tôi có một hành động trang/bộ điều khiển trong trang web của mình thực hiện một số nội dung rất nặng. Mất khoảng 10 giây để hoàn thành hoạt động của nó.ASP.NET (MVC) Outputcache và yêu cầu đồng thời
Bây giờ, tôi sử dụng cơ chế outputcache của .NET để lưu trong 15 phút (để kiểm tra, tôi sử dụng [OutputCache(Duration = 900)]
) Điều gì sẽ xảy ra nếu sau 15 phút, bộ nhớ cache đã hết hạn và 100 người dùng yêu cầu trang lại trong vòng 10 giây đó phải làm gì để xử lý nặng?
- Những thứ nặng được thực hiện chỉ lần đầu tiên, và có một số cơ chế khóa để các 99 người dùng khác sẽ nhận được kết quả bộ nhớ cache
- Những thứ nặng được thực hiện 100 lần (và máy chủ được tê liệt như có thể mất tối đa 100 * 10 giây)
Câu hỏi dễ có thể, nhưng tôi không chắc chắn 100%. Tôi hy vọng nó là số một, mặc dù :-)
Cảm ơn!
Cảm ơn trời Tôi thực sự không có yêu cầu mất 10 giây, nhưng tôi phóng đại rất nhiều để minh họa một điểm. Tôi chỉ tò mò điều gì sẽ xảy ra trong một kịch bản như vậy. Cảm ơn! Có thể xem xét việc thực hiện các bộ điều khiển async mặc dù. – Razzie
đã được một thời gian ... chỉ cần làm một bài kiểm tra bản thân mình mặc dù và tôi chắc chắn nó không khóa, như bạn nói. Cảm ơn. – Razzie