2017-06-09 31 views
5

Yeniden olmadan benim kodda bir ejb zamanlayıcı kullanıyorum:özelleştirme EJB Timer Programı Savaşı

import org.apache.logging.log4j.Logger; 
import javax.annotation.Resource; 
import javax.ejb.Schedule; 
import javax.ejb.Singleton; 
import javax.ejb.Startup; 
import javax.inject.Inject; 

@Singleton 
@Startup 
public class Notifier { 

    @Inject 
    Logger LOG; 

    @Resource(mappedName="java:jboss/mail/Default") 
    private Session mailSession; 

    @Schedule(minute = "0", hour = "*", persistent = false) 
    public void notify() { 

    } 
} 
Ben yeniden inşa etmek ve elde edilen savaş yüklemek zorunda kalmadan zamanlayıcı yeniden muktedir istiyorum

Sunucu her zaman, planlamayı değiştirmem gerektiğine karar verdim.

Bunu nasıl yaparım?

cevap

2

Bir sistem özelliği ve ScheduleExpression kullanabilirsiniz. Ya da bir programmatic EJB Timer kullanabilirsiniz.

Başka bir seçenek ManagedScheduledExecutorService kullanmak ve bir sonraki çalışma süresini denetlemek için Trigger kullanın. Yine bir sistem özelliğini veya uygulamanın dışında kalan bir yapılandırma dosyasını kullanabilirsiniz.