2012-02-03 14 views
8

मैं प्रत्येक 15 मिनट चलाने के लिए कक्षा निर्धारित करने की कोशिश कर रहा हूं। मुझे पता है कि हम हर घंटे के लिए बिक्री बल में सेट कर सकते हैं, लेकिन क्या ग्रैन्युलरिटी को 10-15 मिनट तक कम करने का कोई तरीका है?हम बिक्री के बल में हर 15 मिनट चलाने के लिए कक्षा कैसे निर्धारित करते हैं?

global class scheduledMerge implements Schedulable { 
    global void execute(SchedulableContext SC) { 
     ProcessTransactionLog p= new ProcessTransactionLog(); 
     p.ProcessTransaction(); 
    } 
} 

उत्तर

14

आप इस शीर्ष कोड स्निपेट का उपयोग अपने 15 मिनट चलाने के लिए अपना काम निर्धारित करने के लिए कर सकते हैं।

System.schedule('Job1', '0 0 * * * ?', new scheduledMerge()); 
System.schedule('Job2', '0 15 * * * ?', new scheduledMerge()); 
System.schedule('Job3', '0 30 * * * ?', new scheduledMerge()); 
System.schedule('Job4', '0 45 * * * ?', new scheduledMerge()); 
+0

मैं बहुत यकीन है कि आप भी एक से अधिक मान पृथक करने के लिए अल्पविराम का उपयोग कर सकते हैं: 'System.schedule ('Job1', '0 0,15,30,45 * * *?', नया शेड्यूलरर्ज()); ' –

+0

इस उत्तर की पहली पंक्ति नौकरी (सैद्धांतिक रूप से) हर मिनट निष्पादित करने का कारण बन जाएगी। "15 पर हर 15 मिनट चलाने" को व्यक्त करने के लिए "क्रॉन-पसंदीदा" तरीका '0 0/15 * * *' होगा। – jkraybill

+3

मैट, वास्तव में एपेक्स सीआरओएन में आपको सेकेंड और मिनट को इंटीग्रर्स के रूप में निर्दिष्ट करना होगा --- कॉमा, सितारे, और डैश केवल अन्य सीआरओएन घटकों के लिए उपलब्ध हैं। तो आपका '0,15,30,45' दृष्टिकोण काम नहीं करेगा। इसके अलावा, राजेश के दृष्टिकोण के बारे में सावधानी बरतने का एक शब्द: आपके पास केवल 25 कुल अनुसूचित शीर्ष वर्ग हो सकते हैं, और राजेश का दृष्टिकोण उनमें से 4 का उपयोग करता है। लेकिन अगर आपके पास अतिरिक्त नौकरियां हैं, तो यह बहुत अच्छा काम करेगा। – zachelrath

0
global class scheduledTest implements Schedulable { 
    global void execute(SchedulableContext SC) { 
     RecurringScheduleJob.startJob(); 
     String day = string.valueOf(system.now().day()); 
     String month = string.valueOf(system.now().month()); 
     String hour = string.valueOf(system.now().hour()); 
     String minute = string.valueOf(system.now().minute() + 15); 
     String second = string.valueOf(system.now().second()); 
     String year = string.valueOf(system.now().year()); 

     String strJobName = 'Job-' + second + '_' + minute + '_' + hour + '_' + day + '_' + month + '_' + year; 
     String strSchedule = '0 ' + minute + ' ' + hour + ' ' + day + ' ' + month + ' ?' + ' ' + year; 
     System.schedule(strJobName, strSchedule, new scheduledTest()); 
    } 
} 
+1

'अब' नामक एक चर परिभाषित करें और addMinutes (Integer) विधि का उपयोग सटीक होगा। डेटाटाइम अब = System.now(); डेटाटाइम अगली = अब .addMinutes (10); –

+0

यह प्रत्येक 15 मिनट में चलाएगा जब भी मैं शीर्ष अनुसूची 1 घंटे तक सेट करूं? – sfdclearner

संबंधित मुद्दे