我有一个web应用程序(jee7,war,在Wildfly 10上运行)。
该应用程序依赖于一个jar文件,该文件包含在不同项目中使用的jpa实体和服务。
我已经根据文档将Deltaspike Scheduler Module添加到jar项目的pom文件中,但是使用@Scheduled注释的Job/Runnables不会以所需的速率/时间执行,它们根本不会执行。
当我在war/main项目中创建相同的带注释的类时,一切都很正常。
那么,有没有办法让Deltaspike也考虑jar文件中带注释的类呢?
发布于 2018-10-17 18:29:40
我终于想通了:
而工作是:
@Scheduled(cronExpression = "0 0/1 * * * ?")
public class TimeLogger implements Job {
@Inject
private Logger logger;
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
logger.info(new Date().toString());
}
}被安排在主项目中时,它不会在jar文件中被安排。
为了解决这个问题,我只需要添加作用域注释(@Dependend,@ApplicationScoped,...)。
所以我的库类现在看起来像:
@Dependent
@Scheduled(cronExpression = "0 0/1 * * * ?")
public class TimeLogger implements Job {
@Inject
private Logger logger;
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
logger.info(new Date().toString());
}
}像个魔法师一样工作;)
https://stackoverflow.com/questions/52836890
复制相似问题