Set model state offline if online check is skipped
This commit is contained in:
parent
f4a13cb080
commit
983e5ae25a
|
@ -77,7 +77,9 @@ public class OnlineMonitor extends Thread {
|
|||
boolean skipCheckForSuspended = config.getSettings().onlineCheckSkipsPausedModels && model.isSuspended();
|
||||
boolean skipCheckForMarkedAsLater = model.isMarkedForLaterRecording();
|
||||
if (skipCheckForSuspended || skipCheckForMarkedAsLater) {
|
||||
continue;
|
||||
// force set offline in case model was suspended while online
|
||||
// TODO: check if this is thread safe
|
||||
setModelStateNotified(model, Model.State.OFFLINE);
|
||||
} else {
|
||||
futures.add(updateModel(model));
|
||||
}
|
||||
|
@ -97,6 +99,14 @@ public class OnlineMonitor extends Thread {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setModelStateNotified(Model model, Model.State state) {
|
||||
Model.State oldState = states.getOrDefault(model, UNKNOWN);
|
||||
states.put(model, state);
|
||||
if (state != oldState) {
|
||||
EventBusHolder.BUS.post(new ModelStateChangedEvent(model, oldState, state));
|
||||
}
|
||||
}
|
||||
|
||||
private ModelAwareFuture updateModel(Model model) {
|
||||
final String siteName = model.getSite().getName();
|
||||
|
@ -121,11 +131,7 @@ public class OnlineMonitor extends Thread {
|
|||
state = model.getOnlineState(false);
|
||||
}
|
||||
LOG.debug("Model online state: {} {}", model.getName(), state);
|
||||
Model.State oldState = states.getOrDefault(model, UNKNOWN);
|
||||
states.put(model, state);
|
||||
if (state != oldState) {
|
||||
EventBusHolder.BUS.post(new ModelStateChangedEvent(model, oldState, state));
|
||||
}
|
||||
setModelStateNotified(model, state);
|
||||
} catch (HttpException e) {
|
||||
LOG.error("Couldn't check if model {} is online. HTTP Response: {} - {}", model.getName(), e.getResponseCode(), e.getResponseMessage());
|
||||
} catch (SocketTimeoutException e) {
|
||||
|
|
Loading…
Reference in New Issue