मैं एक .NET 4 अनुप्रयोग विकसित कर रहा हूं जिसके लिए बैकएंड वर्कर थ्रेड चलाना आवश्यक है। इस धागे में निम्नलिखित कोड शामिल हैं:एएसपी.नेट में लंबी चल रही पृष्ठभूमि प्रक्रिया - एप्लिकेशन_स्टार्ट या अलग प्रक्रिया?
while (true) {
//Check stuff in database
//Do stuff
//write to database/filesystem
Thread.sleep(60000)
}
एएसपी.नेट ऐप डेटाबेस के लिए सिर्फ एक अग्रभाग है।
मेरा प्रश्न यह है कि इस कार्यकर्ता लूप को रखने के लिए सबसे अच्छी जगह होगी। ऐसा लगता है कि मेरे तत्काल दो विकल्प Application_Start
विधि से इसे स्पिन करने के लिए होंगे, और बस इसे चलाने दें, या (2) इसे एक अलग प्रक्रिया (विंडोज सेवा?) में बंडल करें
(1) स्पष्ट रूप से होगा एएसपी.NET कोड में कुछ तर्क की आवश्यकता है ताकि यह जांच सके कि यह अभी भी चल रहा है, क्योंकि आईआईएस इसे मार सकता है। यह भी काफी साफ है कि पूरे एप्लिकेशन तर्क एक, आसानी से तैनाती योग्य पैकेज में है। (2) अधिक अलग है, लेकिन बहुत गड़बड़ महसूस करता है।
सबसे अच्छा तरीका क्या है?
[एएसपी.नेट और लंबे समय तक चलने वाले पृष्ठभूमि धागे के संभावित डुप्लिकेट - वे कैसे मिश्रण करते हैं?] (Http://stackoverflow.com/questions/323693/asp-net-and-long-running-background-threads-how -do-they-mix) – jrummell