项目每天晚上有个定时任务,把redis缓存数据重新连接数据库刷新一遍,耗时大约40分钟。但问题是项目是nginx负载均衡,这个定时任务会执行多次。经过一些思考之后,用以下办法解决:
redis里加一个key,名字是指定名称+日期。定时任务启动后,会去redis里查看是否存在这个key,如果存在就不执行定时任务,不存在就创建这个key并执行定时任务。这样无论这个任务被调取了多少次,它只会执行最开始的一次。
Posted rock_turf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决一个特定的负载均衡下定时任务执行多次的问题相关的知识,希望对你有一定的参考价值。
项目每天晚上有个定时任务,把redis缓存数据重新连接数据库刷新一遍,耗时大约40分钟。但问题是项目是nginx负载均衡,这个定时任务会执行多次。经过一些思考之后,用以下办法解决:
redis里加一个key,名字是指定名称+日期。定时任务启动后,会去redis里查看是否存在这个key,如果存在就不执行定时任务,不存在就创建这个key并执行定时任务。这样无论这个任务被调取了多少次,它只会执行最开始的一次。
以上是关于解决一个特定的负载均衡下定时任务执行多次的问题的主要内容,如果未能解决你的问题,请参考以下文章