现在有倒计时的任务,但是任务完成结束的时间无法确定,延迟在10秒左右,可能会5秒就好,也可能12秒左右就好,现在我无法预估好失效的时间,只能取15秒的延迟时间,然后监听失效后去调取函数,然后去循环计算并且更新各个用户的奖励值,现在的问题就是太不稳定了,延迟了15秒,可能任务还没完成结束,监听就已经开始了,导致数据出错不更新;如果设置延迟时间太长,更新用户的值所用的时长也会变的很长,现在我想要能准确监听好任务的完成,并且更新用户的值的时长也不会很长,有什么好的解决办法吗?
现在有倒计时的任务,但是任务完成结束的时间无法确定,延迟在10秒左右,可能会5秒就好,也可能12秒左右就好,现在我无法预估好失效的时间,只能取15秒的延迟时间,然后监听失效后去调取函数,然后去循环计算并且更新各个用户的奖励值,现在的问题就是太不稳定了,延迟了15秒,可能任务还没完成结束,监听就已经开始了,导致数据出错不更新;如果设置延迟时间太长,更新用户的值所用的时长也会变的很长,现在我想要能准确监听好任务的完成,并且更新用户的值的时长也不会很长,有什么好的解决办法吗?
任务完成之后是否可以异步调用‘结算积分’方法,否的话见方案1
监听binlog变化,发现任务完全则进行积分结算,推荐使用阿里开源的canal
canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费
1 回答4.2k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
1 回答2k 阅读✓ 已解决
2 回答834 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
org.springframework.data.redis.listener.KeyExpirationEventMessageListener
这个类可以用于
Redis
过期监听。