[英]Scheduled task executed twice
我有两个@Schedules
的无状态会话bean:
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)
@Stateless
@Lock(LockType.WRITE)
@AccessTimeout(value = 0)
public class ScheduledTask {
@EJB
private SomeClass sClass;
@Schedules({
@Schedule(hour = "*", minute = "*/10",
info = "Automatic timer to send")})
public void send() {
sClass.doWork(true);
}
@Schedules({
@Schedule(hour = "*", minute = "*/35",
info = "Automatic timer to receive")})
public void receive() {
sClass.doWork(false);
}
}
我的问题是任务执行了两次。 我已阅读主题,但未找到解决方案。
我在控制台中有相同的输出(例如(EJB默认-1)和(EJB默认-2)):
INFO [GENERAL_LOGGER] (EJB default - 2) resultForSend.size() = 500
INFO [GENERAL_LOGGER] (EJB default - 1) resultForSend.size() = 500
解决方案是从WAR模块中删除EJB类。 我在EAR内部的两个单独的模块(EJB和WAR)中拥有相同的类,因此Schedules
被注册了两次。 包装过程中的一个愚蠢错误导致重复执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.