现在有这么个需求,客户提交申请后需要审核,如果审核员在5天内没有对其进行审核操作,要求系统自动回滚相应金额,如果采用计时器写这个方法,那么万一碰到服务器做相应的调整维护,或者是断电等故障发生的时候,计时器就会失效,因为计时器是在提交的时候调动的。
我有这么一个思路,就是之前提交方法以及计时器都正确执行,提交时借助数据库中记录2个字段,一个是提交时间,另一个是截止时间,然后,当服务器启动相关服务都启动的时候,取服务器时间与截止时间进行比较如果时间已经过了立即执行回滚方法,如果时间没过计算差值,重新加载计时器。
但是现在不知道这个方法应该写在哪里,才能让服务器启动后正确执行这个类似初始化的时候执行的方法。另外想请教下哪位大神有别的思路完成这个服务器断电后不影响这个方法计时的。
使用消息队列吧,消息队列中可以设置定时发送异步消息,并且主服务器断点不会影响消息队列的服务器,消息队列本身也有重启后继续发送的机制