खोज…


शेड्यूलिंग सक्षम करें

वसंत एक उपयोगी कार्य समयबद्धन सहायता प्रदान करता है। इसे सक्षम करने के लिए, बस अपने किसी @Configuration क्लासेस को @EnableScheduling से @EnableScheduling :

 @Configuration
 @EnableScheduling
 public class MyConfig {

     // Here it goes your configuration
 }

निश्चित देरी

यदि हम चाहते हैं कि निष्पादन समाप्त होने से पहले कुछ कोड समय-समय पर निष्पादित किए जाएं, तो हमें निश्चित विलंब (मिलीसेकंड में मापा जाता है) का उपयोग करना चाहिए:

@Component
public class MyScheduler{    
    
    @Scheduled(fixedDelay=5000)
    public void doSomething() {
        // this will execute periodically, after the one before finishes
    }
}

निर्धारित दर

यदि हम चाहते हैं कि कुछ समय-समय पर निष्पादित हो, तो यह कोड हमारे द्वारा निर्दिष्ट मिलीसेकंड में मूल्य के अनुसार एक बार चालू हो जाएगा:

@Component
public class MyScheduler{    
    
    @Scheduled(fixedRate=5000)
    public void doSomething() {
        // this will execute periodically
    }
}

क्रोन अभिव्यक्ति

क्रोन की अभिव्यक्ति में छह अनुक्रमिक क्षेत्र होते हैं -

second, minute, hour, day of month, month, day(s) of week

और निम्नानुसार घोषित किया जाता है

@Scheduled(cron = "* * * * * *")

हम समय-सारणी को भी इस प्रकार निर्धारित कर सकते हैं -

@Scheduled(cron="* * * * * *", zone="Europe/Istanbul")

टिप्पणियाँ: -

syntax            means                example                explanation
------------------------------------------------------------------------------------
*                 match any            "* * * * * *"          do always
*/x               every x              "*/5 * * * * *"        do every five seconds
?                 no specification     "0 0 0 25 12 ?"        do every Christmas Day

उदाहरण: -

syntax                        means
------------------------------------------------------------------------------------
"0 0 * * * *"                 the top of every hour of every day.
"*/10 * * * * *"              every ten seconds.
"0 0 8-10 * * *"              8, 9 and 10 o'clock of every day.
"0 0/30 8-10 * * *"           8:00, 8:30, 9:00, 9:30 and 10 o'clock every day.
"0 0 9-17 * * MON-FRI"        on the hour nine-to-five weekdays
"0 0 0 25 12 ?"               every Christmas Day at midnight

@Scheduled() साथ घोषित एक विधि को प्रत्येक मिलान मामले के लिए स्पष्ट रूप से कहा जाता है।

यदि हम चाहते हैं कि क्रोन की अभिव्यक्ति के पूरा होने पर कुछ कोड निष्पादित किए जाएं, तो हमें इसे एनोटेशन में निर्दिष्ट करना होगा:

@Component
public class MyScheduler{    
    
    @Scheduled(cron="*/5 * * * * MON-FRI")
    public void doSomething() {
        // this will execute on weekdays
    }
}

यदि हम अपने कंसोल में वर्तमान समय को 5 सेकंड के बाद प्रिंट करना चाहते हैं -

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;


@Component
public class Scheduler {

    private static final Logger log = LoggerFactory.getLogger(Scheduler.class);
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(cron = "*/5 * * * * *")
    public void currentTime() {
        log.info("Current Time      = {}", dateFormat.format(new Date()));
    }

}

XML कॉन्फ़िगरेशन का उपयोग करके उदाहरण:

उदाहरण वर्ग:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;


@Component("schedulerBean")
public class Scheduler {

    private static final Logger log = LoggerFactory.getLogger(Scheduler.class);
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    public void currentTime() {
        log.info("Current Time      = {}", dateFormat.format(new Date()));
    }

}  

उदाहरण XML (कार्य-संदर्भ। Xml):

  <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:task="http://www.springframework.org/schema/task"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
        http://www.springframework.org/schema/task 
        http://www.springframework.org/schema/task/spring-task-4.1.xsd">


    <task:scheduled-tasks scheduler="scheduledTasks">
        <task:scheduled ref="schedulerBean" method="currentTime" cron="*/5 * * * * MON-FRI" />
    </task:scheduled-tasks>

    <task:scheduler id="scheduledTasks" />

</beans>


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow