2016-10-27 5 views
5

मैं आवर्ती नौकरियों के लिए जॉब शेड्यूलर के रूप में हैंगफायर का उपयोग कर देख रहा हूं। इसलिए उन्हें कॉन्फ़िगर करना AddOrUpdate के साथ आसान है, लेकिन फिर मैं इसे कैसे हटा सकता हूं? मैं RecurringJob.RemoveIfExists() के साथ अपने कोड को प्रदूषित नहीं करना चाहता हूं जब उस काम को हटा दिया गया है और फिर इसे बाद में हटाने के लिए याद रखना होगा।स्टार्टअप पर सभी hangfire पुनरावर्ती नौकरियों को कैसे निकालें?

क्या सभी पुनरावर्ती नौकरियों की सूची प्राप्त करने का कोई तरीका है और सर्वर प्रारंभ होने पर उन्हें हटाएं और इसलिए मेरा कोड उन्हें हर बार जोड़ देगा? यदि नहीं, तो कोई बेहतर तरीका है?

उदा।

आवेदन संस्करण 1: जोड़े गए नए Hangfire आवर्ती काम Do something 1

आवेदन संस्करण 2: जोड़े गए नए Hangfire आवर्ती नौकरियों Do something 2 और Do Something 3

आवेदन संस्करण 3: निकाला गया Hangfire आवर्ती काम Do something 2

समस्या: जॉब अभी भी सर्वर पर मौजूद है "त्रुटि लोड नहीं हो सका ..." और हटाया जाना चाहिए।

उत्तर

17

इस पर थोड़ा देर हो चुकी है लेकिन उम्मीद है कि यह किसी और की मदद करेगा। मैं एक ही स्थिति में फंस गया। अंत में HangFire recurring task data पर उत्तर ने मेरी मदद की।

मैं सभी आवर्ती नौकरियों लूप करने के लिए JobStorage का उपयोग करें और नीचे के रूप में बारी में प्रत्येक को दूर:

using (var connection = JobStorage.Current.GetConnection()) 
{ 
    foreach (var recurringJob in connection.GetRecurringJobs()) 
    { 
     RecurringJob.RemoveIfExists(recurringJob.Id); 
    } 
} 

मुझे यकीन है वहाँ एक अच्छा तरीका है, लेकिन मैं इसे

नहीं पा सके
संबंधित मुद्दे