Tôi hiện đang làm việc trên trang web thương mại điện tử và có một tính năng mà tôi không chắc chắn về cách triển khai. Hầu hết thời gian bạn chỉ cần thêm (các) sản phẩm vào giỏ hàng của bạn và mua chúng, đó có lẽ là quy trình làm việc đơn giản nhất. Những gì tôi yêu cầu là một chút khác nhau, nếu có một giới hạn thời gian cho một sản phẩm để mua? Ý tôi là một số trang web cung cấp cho bạn giới hạn thời gian chính xác để mua sản phẩm (như Trình quản lý bóng đá), trong các trang web đó bạn không thể giữ sản phẩm mãi mãi, có giới hạn 15 phút cho nó và nếu bạn không mua trong khoảng thời gian đó được phát hành từ giỏ hàng của bạn. (và có lẽ ai đó sẽ nhảy lên)Làm thế nào để thực hiện các công việc nền trong trang ASP.NET MVC 3?
Bây giờ, với tư cách là lập trình viên ASP.NET MVC, tôi muốn thực hiện tính năng này nhưng như tôi đã nói, tôi không biết phải làm thế nào. Tôi nghĩ rằng khi tôi thêm mục vào giỏ hàng tôi cần phải giữ thời gian (một cái gì đó như ItemAddedAt) và tôi cần phải phát hành mục đó trong x phút vì vậy một cái gì đó cần phải chạy x phút sau đó để phát hành sản phẩm đó. Trên toàn cầu suy nghĩ, tôi nghĩ rằng tôi cần một dịch vụ, khi tôi thêm một mục, tôi cũng cần phải đăng ký nó với dịch vụ và dịch vụ này chạy một bộ đếm thời gian/công việc trong nền. Những gì tôi không biết/không có kinh nghiệm là một phần này, làm thế nào để làm điều đó trong một dự án ASP.NET MVC, là có một dự án mẫu, bài viết, thư viện hoặc một cái gì đó như thế?
Tất nhiên tôi không biết nếu logic của tôi là đúng cho vấn đề này, tôi cần một số hướng dẫn, nếu có thể một số mã nguồn để làm việc trên.
Trước hết, cảm ơn lời giải thích chi tiết ^^ Tôi nghĩ tôi sẽ không thích Windows Task Scheduler vì tôi hiểu, nếu tôi sử dụng Scheduler theo cách đó thì tôi cần phải chạy dịch vụ đó với thời gian rất ngắn hoặc sẽ có khoảng cách lớn giữa thời gian hết hạn và thời gian chạy theo lịch trình tiếp theo. IMHO giải pháp thứ hai của bạn thú vị hơn vì nó cung cấp cho bạn một kích hoạt chính xác và có vẻ như nó có thể dễ dàng thực hiện nhưng có một câu hỏi trong đầu, CacheItemRemovedCallback có đủ đáng tin cậy để sử dụng trong các loại giải pháp này không? –
loại triển khai đệ quy có thể hoạt động tốt, nhưng tôi ngay lập tức bắt đầu lo lắng về kích thước ngăn xếp cuộc gọi trong trường hợp này –
@ArtemNikolov Chúng tôi đã sử dụng mã đó cho cùng một lý do chính xác (nó hiện đang làm việc trong một thương mại điện tử, giải phóng cổ phiếu), và nó đã được chạy trong khoảng 4 năm, vì vậy tôi sẽ đoán như vậy :) – salgiza