问题:一个项目,部署在多台服务器上,里面有一个定时任务需要执行,会重复执行多次。
解决方法:
方案一:项目中配置一个运行定时任务的主机名,然后在启动定时任务的方法内部,获取当前运行的服务器的主机名,与配置的主机名是否一致,假如一致,则任务继续往下执行;不一致,直接return。
具体代码:
1、linux系统下,执行hostname命令,得到如下结果:localhost.localdomain,其中localhost表示主机名,localdomain为域名,具体参考:linux下怎么查看主机名以及修改主机名
2、java代码:
//系统配置的主机名,多个,以逗号分割
String host = "localhostName";
host = host.replaceAll(" ", "");
String[] hosts = host.split(