public boolean inTimeWindow(String timezoneOffset) { return inTimeWindow(AppUtils.getLocalDateForOffset(timezoneOffset)); }
public List<String> findOfflineNodeIds(long minutesOffline) { List<String> offlineNodeList = new ArrayList<String>(); Node myNode = findIdentity(); if (myNode != null) { long offlineNodeDetectionMillis = minutesOffline * 60 * 1000; List<Row> list = sqlTemplate.query(getSql("findNodeHeartbeatsSql"), new Object[] { myNode.getNodeId(), myNode.getNodeId()}, (int[])null); for (Row node : list) { String nodeId = node.getString("node_id"); Date time = node.getDateTime("heartbeat_time"); String offset = node.getString("timezone_offset"); // Take the timezone of the client node into account when // checking the hearbeat time. Date clientNodeCurrentTime = null; if (offset != null) { clientNodeCurrentTime = AppUtils .getLocalDateForOffset(offset); } else { clientNodeCurrentTime = new Date(); } long cutOffTimeMillis = clientNodeCurrentTime.getTime() - offlineNodeDetectionMillis; if (time == null || time.getTime() < cutOffTimeMillis) { offlineNodeList.add(nodeId); } } } return offlineNodeList; }
public List<Node> findOfflineNodes(long minutesOffline) { List<Node> offlineNodeList = new ArrayList<Node>(); Node myNode = findIdentity(); if (myNode != null) { long offlineNodeDetectionMillis = minutesOffline * 60 * 1000; List<Row> list = sqlTemplate.query(getSql("findNodeHeartbeatsSql"), new Object[] { myNode.getNodeId(), myNode.getNodeId()}, (int[])null); for (Row node : list) { String nodeId = node.getString("node_id"); Date time = node.getDateTime("heartbeat_time"); String offset = node.getString("timezone_offset"); // Take the timezone of the client node into account when // checking the hearbeat time. Date clientNodeCurrentTime = null; if (offset != null) { clientNodeCurrentTime = AppUtils .getLocalDateForOffset(offset); } else { clientNodeCurrentTime = new Date(); } long cutOffTimeMillis = clientNodeCurrentTime.getTime() - offlineNodeDetectionMillis; if (time == null || time.getTime() < cutOffTimeMillis) { offlineNodeList.add(findNode(nodeId)); } } } return offlineNodeList; }