Я интегрирую модуль оплаты в нашем приложении, используя весеннюю загрузку. Я застрял в одном из крайних случаев, когда пользователь закрывал браузер во время транзакции.Выполнять триггер/задачу только один раз в задаче Spring-boot и de-register во время выполнения
Когда пользователь закрывает браузер, мне нужно обновить таблицу транзакций со статусом. Но, к сожалению, я не могу, поскольку URL-адрес торгового сайта. Поэтому я думал написать триггер (используя Spring boot), когда запись идет в таблице транзакций (Hibernate).
Триггер должен обновить статус транзакции после таймаута (30 минут), если пользователь закрывает браузер при осуществлении платежа.
Если транзакция прошла успешно, я не хочу запускать триггер.
Я не мог понять, как это сделать в Spring-boot, поэтому я использовал простой Java timerTask, который будет выполняться только один раз через 30 минут. Есть ли лучший подход с использованием весеннего ботинка?
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
LOGGER.info("Trigger for Transaction id "+transactionId);
}
},
1000 * 60 * 30 // 30 mins
);
Таким образом, каждое задание мин попадет в БД, чтобы проверить, является ли статус транзакции нулевым или нет, и время транзакции> 30 минут –
Это то, что я бы сделал ... Индексируйте статус транзакции и время, так что это будет легкий запрос. –