Tôi đang phát triển một ứng dụng .NET 4 yêu cầu một chuỗi công việc phụ trợ để chạy. Chủ đề này bao gồm phần lớn mã sau:Quá trình nền dài chạy trong ASP.NET - Application_Start hoặc quá trình riêng biệt?
while (true) {
//Check stuff in database
//Do stuff
//write to database/filesystem
Thread.sleep(60000)
}
Ứng dụng ASP.NET chỉ là giao diện người dùng cho cơ sở dữ liệu.
Câu hỏi của tôi là xung quanh nơi tốt nhất để đặt vòng lặp công nhân này. Có vẻ như hai lựa chọn trước mắt của tôi sẽ là (1) để tách nó ra khỏi phương thức Application_Start
, và chỉ để cho nó chạy, hoặc (2) gói nó trong một quy trình riêng biệt (dịch vụ Windows?)
(1) cần một số logic trong mã ASP.NET để kiểm tra nó vẫn đang chạy, như IIS có thể giết nó. Nó cũng khá gọn gàng trong đó toàn bộ logic ứng dụng là một, dễ dàng triển khai gói. (2) được tách biệt nhiều hơn, nhưng cảm thấy lộn xộn hơn rất nhiều.
Cách tiếp cận tốt nhất là gì?
có thể trùng lặp với [ASP.NET và chuỗi chạy dài - cách chúng kết hợp?] (Http://stackoverflow.com/questions/323693/asp-net-and-long-running-background-threads-how -do-them-mix) – jrummell