DeltaSpike计划程序模块-如何动态计划作业?

时间:2019-08-13 18:06:08

标签: java cron jobs quartz deltaspike

我想在此作业中使用DeltaSpike数据模块动态运行方法。

我正在使用EJB创建一个动态作业,但是DeltaSpike数据模块需要一个@RequestScoped EntityManager,并且由于EJB作业而崩溃。

“范围类型javax.enterprise.context.RequestScoped没有活动上下文。”

import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.*;
import javax.inject.Inject;

@Startup
@Singleton
public class Scheduler {
    @Resource
    private TimerService timerService;

    @Inject
    private DAO dao;

    @Inject
    private Worker worker;

    @PostConstruct
    public void init() {
        Integer interval = this.dao.getInterval().intValue();

        ScheduleExpression scheduleExpression = new ScheduleExpression().hour("*").minute(interval);

        this.timerService.createCalendarTimer(scheduleExpression);
    }

    @Timeout
    public void execute() {
        this.worker.work();
    }
}

我希望每隔20、30或60分钟每小时运行一次此工作,这取决于我从数据库获取的时间间隔。如何使用DeltaSpike调度程序模块执行此操作?我可以使用EJB吗?

0 个答案:

没有答案
相关问题