JFinal如何实现类似事务委托在事务提交后执行指定代码

举个例子:事务通过Db.tx();来处理,在业务过程中会写入很多待发送消息的log,如何实现在事务提交后自动触发发送消息的代码(也就是log持久化到数据库以后开始发送消息)。

评论区

要输就输给追求

2021-07-29 11:49

boolean result = Db.tx();

lang3126

2021-07-29 14:04

@要输就输给追求 boolean result = Db.tx(Log log = new Log(); log.save(); Message.send(log);); 假设我是通过消息队列异步发送Message.send(log),这种情况下,只要事务还没有提交,消息队列取到log是还没有持久化到数据的。需要等待事务提交后处理,有没有好的方案?

lang3126

2021-07-30 15:22

@JFinal 大佬,我们JFinal有没有办法实现类似Spring的事务管理 TransactionSynchronizationManager.registerSynchronization

doubuxingle

2021-07-30 18:14

boolean result = Db.tx(Log log = new Log(); log.save(); ); if(result) Message.send(log);

lang3126

2021-08-06 11:43

@doubuxingle 如果是嵌套事务,这种方式就不适合了,不知道Db.tx支不支持AOP?

热门反馈

扫码入社