有一个场景
在执行完一系列的数据库操作后,通过获取数据库的流水,来发送校验短信。但是这个数据是在之前一系列的数据库操作的,数据库操作有事务,必须得等方法执行完成后才可以提交。
我这边发送校验短信写在了事务操作里通过线程池开了一个线程来执行的,然后会有这样的情况,有些时候会发送校验短信线程先获取 cpu 执行,然后导致获取不到数据库的流水数据,线程创建运行后,如何可以等待事务的执行结束后再执行线程内的操作。
我目前的写法是,在线程里加了 Thread.sleep(1000),让线程进行睡眠,在 1000ms 内 事务的操作一般都已经执行结束,此时执行线程内的发送校验短信操作。
但我不知道我这个方法会不会有什么影响,有学过线程操作,但是第一次在实际开发环境中使用到,问问有什么更好的处理方法。