2012-04-30 22 views
6

मुझे हर दिन मध्यरात्रि प्रशांत समय में नौकरी निष्पादित करना है। मैं Quartz.NET पुस्तकालय के साथ एमवीसी 3 का उपयोग कर रहा हूँ।Quartz.net में एक ही घंटे में रोज़ाना नौकरी कैसे शुरू करें?

public static void ConfigureQuartzJobs() 
{ 
    ISchedulerFactory schedFact = new StdSchedulerFactory(); 

    IScheduler sched = schedFact.GetScheduler(); 

    DateTime dateInDestinationTimeZone = System.TimeZoneInfo 
     .ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, System.TimeZoneInfo.Utc.Id, "Pacific Standard Time").Date; 


    IJobDetail job = JobBuilder.Create<TimeJob>() 
     .WithIdentity("job1", "group1") 
     .Build(); 

    ITrigger trigger = TriggerBuilder.Create() 
     .WithIdentity("trigger1", "group1") 
     .StartAt(dateInDestinationTimeZone) 
     .WithSimpleSchedule(x => x.WithIntervalInHours(24).RepeatForever()) 
     .Build(); 

    sched.ScheduleJob(job, trigger); 

    sched.Start(); 
} 

इस कोड को इस काम के पहले आधी रात में केवल एक बार चलाने के लिए बनाता है (प्रशांत समय में):

यहाँ मेरी कोड है। मैंने वहां .WithSimpleSchedule(x => x.WithIntervalInHours(24).RepeatForever()) सेट किया है लेकिन यह काम नहीं कर रहा है - नौकरी हर दिन दोहराना नहीं है।

मैं इसे हर दिन काम करने के लिए क्या कर सकता हूं?

किसी भी मदद की बहुत सराहना की!

उत्तर

4

क्या आपके निर्धारित कार्य वेब एप्लिकेशन द्वारा होस्ट किए गए हैं? यदि ऐसा है, तो आप ऐसी समस्याओं का अनुभव कर सकते हैं। वेब अनुप्रयोग अनुसूचित कार्यों को चलाने के लिए उपयुक्त नहीं हैं। आपको विंडोज़ सेवा बनाना चाहिए जो निर्धारित कार्यों को होस्ट करता है।

लेकिन वहाँ भी कई तरीके हैं जाँच कर सकते हैं कर रहे हैं:

  1. समय की छोटी अवधि के उपयोग करने का प्रयास (अर्थात जाँच अगर यह काम करता है अगर आप 1 मिनट के लिए अंतराल सेट)।
  2. CronTrigger आज़माएं - मैं इसे विंडोज सेवा में उपयोग कर रहा हूं और यह ठीक काम करता है।

कुछ लेख हैं जो बताते हैं कि वेब एप्लिकेशन में निर्धारित कार्यों को होस्ट करने के पेशेवर और विपक्ष क्या हैं। यह एक: http://www.foliotek.com/devblog/running-a-scheduled-task/

+0

मैंने क्रोनट्रिगर का उपयोग किया - यह पूरी तरह से काम नहीं कर रहा है। यह ठीक से नहीं चलता है जब यह चाहिए, लेकिन पर्याप्त बंद करो। – Marta

+0

क्रोनट्रिगर उपयोगी दिखता है –

+0

मेरे मामले में, 30 मिनट से 5 मिनट तक समय अंतराल को कम करने से नौकरी ठीक से काम करती है। – dsm