项目每天晚上有个定时任务,把redis缓存数据重新连接数据库刷新一遍,耗时大约40分钟。但问题是项目是nginx负载均衡,这个定时任务会执行多次。经过一些思考之后,用以下办法解决:
redis里加一个key,名字是指定名称+日期。定时任务启动后,会去redis里查看是否存在这个key,如果存在就不执行定时任务,不存在就创建这个key并执行定时任务。这样无论这个任务被调取了多少次,它只会执行最开始的一次。