-1
傳遞計劃詳細信息,我想從數據庫傳遞計劃詳細信息。但它不允許傳遞值。我該怎麼辦。在@timeout中,我也無法在服務器啓動時自動啓動線程。 @Postconstruct不起作用。在EJB計時器中使用@schedule,無法使用EJB計時器中的@schedule從數據庫
傳遞計劃詳細信息,我想從數據庫傳遞計劃詳細信息。但它不允許傳遞值。我該怎麼辦。在@timeout中,我也無法在服務器啓動時自動啓動線程。 @Postconstruct不起作用。在EJB計時器中使用@schedule,無法使用EJB計時器中的@schedule從數據庫
您可能需要使用@Timeout,@Singleton,@Startup和@ConcurrencyManagement
@Singleton(name = "...", mappedName = "")
@Startup
@ConcurrencyManagement(ConcurrencyManagementType.BEAN) // this is threadsafe!!!
public class .......
注入TimerService進行配置
@Resource
private TimerService timerService;
注入的EntityManager爲DB-訪問
@PersistenceUnit(..)
private EntityManager entityManager
使用@Timeout代替@Schedule
@Timeout
void timer() { .... }
配置定時器
@PostConstruct
void postConstruct() {
entityManager.createQuery(....);
.
.
timerService.createIntervalTimer(....);
}
除了EntityManager的使用情況,這個工作在我們的網站。
我不想讓我的課singleton.as它應該允許多個線程爲我的應用程序。 –
使用@ConcurrencyManagement(ConcurrencyManagementType.BEAN),可以防止ejb處理方法的獨佔訪問。然後你必須自己處理多個線程的可能用法。 – aschoerk