有一个营销活动,在一个时间段内有效,超过时间活动不可用。之前用的定时任务,每天定时去执行,判断是否有活动到期,到期就修改状态为不可用。
但是:1、这个判断不精确,正好在两次定时任务之间活动到期,就会出问题;
2、单机还行,集群情况下,定时任务会起来多个;
如果不用定时,也抛弃掉状态,在每次业务逻辑里面去获取起止时间,再和当前时间比较,判断是否使用这个活动,又会影响逻辑和性能
有没有什么比较好的解决方法?
有一个营销活动,在一个时间段内有效,超过时间活动不可用。之前用的定时任务,每天定时去执行,判断是否有活动到期,到期就修改状态为不可用。
但是:1、这个判断不精确,正好在两次定时任务之间活动到期,就会出问题;
2、单机还行,集群情况下,定时任务会起来多个;
如果不用定时,也抛弃掉状态,在每次业务逻辑里面去获取起止时间,再和当前时间比较,判断是否使用这个活动,又会影响逻辑和性能
有没有什么比较好的解决方法?
使用延时队列
参考如下:
https://segmentfault.com/a/1190000022718540
如有帮助,请采纳