2014-06-12 10 views
6

के लिए काम नहीं कर रहा है, मैं एक सरल अनुसूचित निष्पादन बनाने के लिए Using the Timer Service ट्यूटोरियल का पालन कर रहा हूं। स्वचालित दृष्टिकोण की कोशिश कर रहे हैं और इसके लिए WildFly 8.1.0 Final का उपयोग कर रहे हैं।जावा ईई 7 स्वचालित टाइमर (ईजेबी टाइमर) वाइल्डफली 8.1.0

सत्र बीन

@Singleton 
@Startup 
public class HelloJob { 

    private static final Logger logger = Logger.getLogger(HelloJob.class); 

    public HelloJob() { 
     logger.error(">>> Hello Job Created."); 
    } 

    @Schedule(second="*") 
    public void sayHello() { 
     logger.error(">>> Server Hello!"); 
    } 

} 

पर वर्ग ठीक से >>> Hello Job Created. संदेश मुद्रण instantiated है तैनात है, लेकिन विधि sayHello() कभी नहीं कहा जाता है।

ट्यूटोरियल के अनुसार @Schedule(second="*") का अर्थ है कि इसे हर सेकेंड निष्पादित करना चाहिए।

तारांकन प्रतीक (*) में एक विशेषता सेट करना विशेषता के लिए सभी स्वीकार्य मानों का प्रतिनिधित्व करता है।

टाइमर के लिए केवल राज्यव्यापी सत्र बीन्स की अनुमति नहीं है, और मैं एक सिंगलटन का उपयोग कर रहा हूं, जिसका प्रयोग उदाहरण में भी किया जाता है।

उद्यम सेम कंटेनर के टाइमर सेवा स्टेटफुल सत्र सेम के लिए छोड़कर उद्यम सेम के सभी प्रकार के लिए अनुसूची का समय समाप्त सूचनाओं के लिए सक्षम बनाता है।

उत्तर

10

@Schedule(second="*", minute="*", hour="*") का उपयोग करें।

घंटे और मिनट के लिए डिफ़ॉल्ट मान "0" हैं जो काफी परेशान हो सकते हैं और इन्हें सेट करने के लिए प्रभावी ढंग से आपको मजबूर कर सकते हैं।

+0

एक आकर्षण की तरह काम किया। – BonanzaOne

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