2012-08-24 10 views
6

मुझे एक साधारण निर्धारित कार्य चलाने की आवश्यकता है जो हर 200ms शुरू करेगी और कुछ आसान करेगी।जावा ईई 5 (जेबॉस) मंच पर निर्धारित कार्य शुरू करने का एक उचित तरीका क्या है?

Executors.newSingleThreadScheduledExecutor() जेबॉस पर निर्धारित निष्पादक सेवा प्राप्त करने का उचित तरीका है?

ऐसा कहा जाता है कि जावा ईई प्लेटफ़ॉर्म पर अप्रबंधित धागे को अनुशंसित करने की अनुशंसा नहीं की जाती है। ऐसा लगता है कि यह धागा एक अप्रबंधित होगा।

दूसरी ओर मैं ऐसी साधारण चीज़ के लिए एमबीन आदि घोषित नहीं करना चाहता हूं।

संपादित

वहाँ org.jboss.resource.work.JBossWorkManager के रूप में कुछ है, लेकिन मैं निर्धारित कार्य का एक उदाहरण नहीं मिल सकता है।

+0

क्या आप किसी भी मौके से वसंत का उपयोग कर रहे हैं? – Eugene

+0

नहीं, यह सिर्फ जावा ईई 5 + सीम (पुराना) –

उत्तर

4

कॉलिंग Executors.newSingleThreadScheduledExecutor() भयानक नहीं है, लेकिन बेहतर ईई कंटेनरों में इससे बचें। जावा EE 5 use TimeoutService में:

@Stateless 
public class TimerSessionBean implements TimerSession { 
    @Resource 
    TimerService timerService; 

    public void startTimer() { 
     Timer timer = timerService.createTimer(200, "Created new timer"); 
    } 

    @Timeout 
    public void timeout(Timer timer) { 
     logger.info("Timeout occurred"); 
    } 
} 

जावा ईई 6 में आप काम @Schedule annotation है।

+0

ईजेबी के बिना इसे निजी रूप से करने का कोई तरीका नहीं है? (मैं जेबॉस 4.x पर हूं, जावा ईई 6 के लिए लंबा रास्ता) –

+0

@PiotrGwiazda: ['टाइमर सेवा '] (http://docs.oracle.com/javaee/6/api/javax/ejb/TimerService.html) ईजेबी 2.1 में पेश किया गया था, इसलिए आपको जेबॉस 4.x पर ठीक होना चाहिए। –

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