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 skipCheckForSuspended = config.getSettings().onlineCheckSkipsPausedModels && model.isSuspended();
|
||||||
boolean skipCheckForMarkedAsLater = model.isMarkedForLaterRecording();
|
boolean skipCheckForMarkedAsLater = model.isMarkedForLaterRecording();
|
||||||
if (skipCheckForSuspended || skipCheckForMarkedAsLater) {
|
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 {
|
} else {
|
||||||
futures.add(updateModel(model));
|
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) {
|
private ModelAwareFuture updateModel(Model model) {
|
||||||
final String siteName = model.getSite().getName();
|
final String siteName = model.getSite().getName();
|
||||||
|
@ -121,11 +131,7 @@ public class OnlineMonitor extends Thread {
|
||||||
state = model.getOnlineState(false);
|
state = model.getOnlineState(false);
|
||||||
}
|
}
|
||||||
LOG.debug("Model online state: {} {}", model.getName(), state);
|
LOG.debug("Model online state: {} {}", model.getName(), state);
|
||||||
Model.State oldState = states.getOrDefault(model, UNKNOWN);
|
setModelStateNotified(model, state);
|
||||||
states.put(model, state);
|
|
||||||
if (state != oldState) {
|
|
||||||
EventBusHolder.BUS.post(new ModelStateChangedEvent(model, oldState, state));
|
|
||||||
}
|
|
||||||
} catch (HttpException e) {
|
} catch (HttpException e) {
|
||||||
LOG.error("Couldn't check if model {} is online. HTTP Response: {} - {}", model.getName(), e.getResponseCode(), e.getResponseMessage());
|
LOG.error("Couldn't check if model {} is online. HTTP Response: {} - {}", model.getName(), e.getResponseCode(), e.getResponseMessage());
|
||||||
} catch (SocketTimeoutException e) {
|
} catch (SocketTimeoutException e) {
|
||||||
|
|
Loading…
Reference in New Issue