2012-10-09 31 views
5

Tôi có một trang web đang được thăm dò ý kiến ​​khá khó khăn để trình bày JSON cùng một tài nguyên từ nhiều máy khách (trình duyệt, ứng dụng khác, kịch bản shell unix, tập lệnh python, v.v.).Bộ nhớ đệm phía máy chủ trong openrasta

Tôi muốn thêm một số bộ nhớ đệm để một số tài nguyên được lưu trong máy chủ trong một khoảng thời gian có thể cấu hình, để tránh việc CPU xử lý yêu cầu và nối tiếp tài nguyên với JSON. Tôi có thể tất nhiên bộ nhớ cache chúng bản thân mình trong xử lý, nhưng sau đó sẽ có các hit serialization trên mọi yêu cầu, và sẽ phải sửa đổi tải của xử lý quá.

Tôi đã xem mô-đun openrasta-caching nhưng nghĩ rằng đây chỉ là để kiểm soát bộ nhớ cache của trình duyệt?
Vì vậy, bất kỳ đề xuất nào về cách tôi có thể mở openrasta để lưu vào bộ nhớ cache biểu diễn được hiển thị của tài nguyên, sau khi codec đã tạo ra nó?

Cảm ơn

+0

Nên thêm rằng nó sẽ là tốt đẹp để có thể làm mất hiệu lực bộ nhớ cache lập trình, vì hầu như tất cả các bản Cập Nhật cho các nguồn lực đang đến trong thông qua xử lý –

+0

Phiên bản .net bạn đang làm việc với? – JPReddy

+0

Tôi đang làm việc với .net 4.0 .. tại sao? –

Trả lời

1

openrasta-bộ nhớ đệm không có hỗ trợ sơ bộ cho phía máy chủ bộ nhớ đệm, với một API bạn có thể ánh xạ vào bộ nhớ cache asp.net server-side, sử dụng thuộc tính ServerCaching. Điều đó nói rằng nó không hoàn chỉnh, không phải là openrasta-caching cho vấn đề đó. Đó là 0,2 sẽ cần một vài ngày làm việc để biến nó thành phiên bản tốt hoàn toàn hỗ trợ tất cả các kịch bản mà tôi muốn hỗ trợ cơ sở hạ tầng bộ nhớ đệm asp.net hiện không hỗ trợ (chủ yếu, làm cho bộ nhớ đệm trong OpenRasta hoạt động chính xác như một trung gian http hơn là một đối tượng và .net trung tâm như tồn tại trong asp.net đất, bao gồm cả kiểm soát khách hàng của bộ nhớ cache máy chủ cho những lần bạn muốn khách hàng được phép lực lượng máy chủ để làm lại truy vấn). Vì hiện tại tôi không có dự án khách hàng nào làm việc trên bộ nhớ đệm nên khó có thể biện minh cho bất kỳ công việc nào khác về plugin đó, vì vậy tôi không viết mã bất kỳ thứ gì cho nó ngay bây giờ. Tôi có 4 ngày miễn phí sắp tới mặc dù, do đó, DM tôi nếu bạn muốn openrasta-caching được bumped đến 0,3 với bất cứ yêu cầu bạn có trong đó có thể phù hợp với 4 ngày làm việc.

Bạn có thể thực hiện điều gì đó đơn giản hơn bằng cách sử dụng IOperationInterceptor và cắm vào đường ống asp.net bằng cách sử dụng, hoặc thân thiện với web hơn và thực hiện bộ nhớ đệm của bạn trong quá trình sử dụng mực và dựa vào openrasta-caching để tạo đúng bộ nhớ đệm http hướng dẫn.

Điều đó nói rằng, đối với vấn đề của bạn, bạn có thể thậm chí không cần bộ nhớ đệm máy chủ nếu chi phí là trong json. Nếu bạn ánh xạ lần sửa đổi cuối cùng hoặc Etag vào thứ mà trình xử lý trả về, nó sẽ tạo chính xác một số 304 nếu thích hợp và bỏ qua tất cả các kết xuất json, miễn là khách hàng của bạn thực hiện các yêu cầu có điều kiện (và phải).

Ngoài ra còn có một API được đề xuất để cho phép bạn tối ưu hóa hơn nữa API của mình bằng cách thực hiện truy vấn đầu tiên trên sửa đổi lần cuối/etag để trả lại 304 mà không truy xuất bất kỳ dữ liệu nào.

Các vấn đề liên quan