2010-12-07 13 views
7

मैंस्प्रिंग @Scheduled इंजेक्षन देरी समय

@Scheduled(fixedDelay = 6000) 
private void myScheduledMethod(){ 
//do something 
} 

साथ एनोटेट कुछ तरीकों मैं भी गुण फ़ाइलों जहाँ मैं पर्यावरण विशिष्ट मान कॉन्फ़िगर का एक सेट है। परीक्षण उद्देश्यों के लिए मैं विलंब के मूल्य को कॉन्फ़िगर करने योग्य मानना ​​चाहता हूं, आदर्श रूप से गुण फ़ाइल में किसी संपत्ति के माध्यम से।

चूंकि fixedDelay के मान को स्थिर रखना है, इसलिए मैं इस सेट को गुण फ़ाइल से प्राप्त करने का एक तरीका ढूंढ रहा हूं, लेकिन इसे अभी तक करने का कोई तरीका नहीं मिला है।

उत्तर

6

मैं एक ही मुद्दों लेकिन इस को हल करने के लिए सबसे अच्छा तरीका पर अटक गया अब होगा:

@Scheduled(fixedDelayString = "${my.delay.property}") 
public void myScheduledMethod(){ 
    // do something 
} 
5

यह विकल्प अच्छा होगा, लेकिन मुझे लगता है कि यह अस्तित्व में नहीं है (एनोटेशन कक्षा-स्तर है, जबकि जब कोई उदाहरण बनाया जाता है तो मूल्य इंजेक्शन दिया जाएगा)।

इस कॉन्फ़िगर करने योग्य को XML नामस्थान <task: का उपयोग करने के लिए। spring docs से उदाहरण की तरह:

<task:scheduled-tasks scheduler="myScheduler"> 
    <task:scheduled ref="someObject" method="someMethod" 
     fixed-delay="${configuredDelay}"/> 
</task:scheduled-tasks> 
संबंधित मुद्दे