我在ManagedScheduledExecutorService方面遇到麻烦。如果我禁用或取消部署我的应用程序,则调度程序仍在运行。仅当我重新启动应用程序服务器时它才会停止。
我正在使用JEE,Application Server Wildfly 9和Java8。
下面的代码:
package br.com.decarli;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
import javax.annotation.Resource;
import javax.enterprise.concurrent.LastExecution;
import javax.enterprise.concurrent.ManagedScheduledExecutorService;
import javax.enterprise.concurrent.Trigger;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.context.Destroyed;
import javax.enterprise.context.Initialized;
import javax.enterprise.event.Observes;
@ApplicationScoped
public class ApplicationSchedulerX {
@Resource( lookup = "java:jboss/ee/concurrency/scheduler/MyScheduler" )
private ManagedScheduledExecutorService timerService;
public void init( @Observes @Initialized( ApplicationScoped.class ) Object o ) {
timerService.schedule( () -> {
System.out.println( " Run scheduler... " );
}, new Trigger() {
@Override
public Date getNextRunTime( LastExecution …Run Code Online (Sandbox Code Playgroud)