2010-12-07 13 views
7

Bahar @Scheduled enjeksiyonu gecikme süresi

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

ile açıkladığım birkaç yönteme sahibim: Ayrıca, belirli bir ortam dosyası yapılandırdığım özellikler dosyası da var. Test amaçlı olarak, ideal bir özellik dosyasında bir özellik aracılığıyla yapılandırılabilir gecikme değerini istiyorum.

fixedDelay'in değeri sabit olmalı, bu dosyayı bir dosyadan almak için bir yol arıyorum, ancak henüz bir yol bulamadım.

cevap

6

şimdi şöyle olacaktır:

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

Bu seçeneğe sahip olmak güzel olurdu, ancak mevcut olmadığını düşünüyorum (ek açıklama bir sınıf oluşturulduğunda, değer düzeyi sınıf düzeyinde iken). Bu yapılandırılabilir xml ad alanı <task:'u kullanmak için

. spring docs örneğin gibi: Ben de aynı sorunlar ama bu çözmek için en iyi yolu saplanıp

<task:scheduled-tasks scheduler="myScheduler"> 
    <task:scheduled ref="someObject" method="someMethod" 
     fixed-delay="${configuredDelay}"/> 
</task:scheduled-tasks>