修复和优化运维心跳功能

hdrplus
Matthew 1 year ago
parent 4d86ebe148
commit 5faeadce9d

@ -240,7 +240,6 @@ public class MpMasterService extends Service {
intentFilter = new IntentFilter(SimUtil.SMS_SEND_ACTION);
registerReceiver(mSmsSnedReceiver, intentFilter);
// AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
// startMaster(false);
@ -553,40 +552,35 @@ public class MpMasterService extends Service {
timeout = mQuickHeartbeatDuration;
registerHeartbeatTimer(SystemClock.elapsedRealtime() + timeout * 1000);
} else {
long closestTime = 0;
long closestTime = -1;
if (mAbsHeartbeatTimes != null && mAbsHeartbeatTimes.length > 0) {
long currentTimeMillis = System.currentTimeMillis();
long heartTimeMills = currentTimeMillis + timeout * 1000;
Date dt = new Date();
for (int i = 0; i < mAbsHeartbeatTimes.length; i++) {
int mAbsHeartbeatTime = mAbsHeartbeatTimes[i];
int hour = mAbsHeartbeatTime / 60;
int minute = mAbsHeartbeatTime % 60;
if (hour >= 24) {
continue;
}
long ts = dt.getTime();
ts -= ts % 1000;
dt.setHours(hour);
dt.setMinutes(minute);
dt.setSeconds(0);
dt.setHours(0);
dt.setMinutes(0);
dt.setSeconds(0);
long selecttime = dt.getTime();
if (selecttime > currentTimeMillis && selecttime < heartTimeMills) {
closestTime = selecttime;
long zeroPoint = dt.getTime();
zeroPoint -= zeroPoint % 1000;
long offsetTs = (ts - zeroPoint) / 1000;
for (int i = 0; i < mAbsHeartbeatTimes.length; i++) {
if (mAbsHeartbeatTimes[i] >= offsetTs) {
closestTime = mAbsHeartbeatTimes[i];
break;
} else {
if (i == (mAbsHeartbeatTimes.length - 1)) {
closestTime = heartTimeMills;
}
}
}
if (closestTime > 0) {
registerAbsHeartbeatTimer(closestTime);
if (closestTime == -1) {
// next day
closestTime = mAbsHeartbeatTimes[0] + 86400;
}
registerAbsHeartbeatTimer(zeroPoint + closestTime * 1000);
} else {
registerHeartbeatTimer(SystemClock.elapsedRealtime() + timeout * 1000);
registerHeartbeatTimer(System.currentTimeMillis() + timeout * 1000);
}
}
}

Loading…
Cancel
Save