У меня есть задача async, которая выполняет операции с базой данных. Это может занять много минут.Java - Выполнение последовательных async
public void doSomeStuff() {
// 10 minutes of database magic
}
Из-за возможных проблем параллелизма на стороне базы данных, должны быть только один асинхронное выполнение этого метода в то же время (как одноточечного). Кроме того, если этот метод уже запущен, следующий вызов не должен отбрасываться, но запоминается и выполняется, когда предыдущий вызов заканчивается. Также как очередь.
Я исследовал аннотации @Asynchronous
и @ConcurrencyManagement(...)
, однако они, похоже, не обеспечивают необходимый контроль.
Как добиться этого в JavaEE 7 с помощью JBoss EAP 6 (+ JSF)?
Отметить метод синхронизации? – Ferrybig