@Scheduled(fixedDelay = 120000)
public void saveAdCache() {
// 获取数据库中字段对应的值,默认为零
int serverNo = sysConfigDAO.getVal("serverNo");
// 获取当前调用方法的服务器的编号,比如我有三台服务器,对应编号就是1,2,3,这个值是spring根据bean自动注入的
int thisServerNo = getServerNo();
if ((thisServerNo - serverNo) == 1) {
System.out.println("当前服务器是" + thisServerNo);
// 更新数据库中SYS_TYPE对应的SYS_VAL的值
serverNo = serverNo + 1;
sysConfigDAO.updateVal("serverNo",serverNo);
// if(serverNo > 2) {
// sysConfigDAO.updateVal("serverNo",0);
// }
} else {
return;
}
}
有三个服务器,每隔两分钟会自动调用这个方法一下,顺序是第一台服务器调用完两分钟后第二台服务器调用再两分钟第三台服务器调用
现在有个问题是:我可能是多台服务器,如何在最后一台服务器调用完这个方法后把serverNo设为零
叙述的不太清楚
不懂的可以再问我