[tivo] refresh connection every 12 hours (#10824)

Signed-off-by: Michael Lobstein <michael.lobstein@gmail.com>
This commit is contained in:
mlobstein 2021-06-12 06:11:15 -05:00 committed by GitHub
parent 72e3729ca7
commit bce5363856
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 2 deletions

View File

@ -29,6 +29,7 @@ public class TiVoBindingConstants {
public static final String BINDING_ID = "tivo";
public static final int CONFIG_SOCKET_TIMEOUT_MS = 1000;
public static final int INIT_POLLING_DELAY_S = 5;
public static final int POLLING_DELAY_12HR_S = 43200;
// List of all Thing Type UIDs
public static final ThingTypeUID THING_TYPE_TIVO = new ThingTypeUID(BINDING_ID, "sckt");

View File

@ -212,8 +212,9 @@ public class TiVoHandler extends BaseThingHandler {
};
if (tivoConfigData.isKeepConnActive()) {
// Run once
refreshJob = scheduler.schedule(runnable, INIT_POLLING_DELAY_S, TimeUnit.SECONDS);
// Run once every 12 hours to keep the connection from going stale
refreshJob = scheduler.scheduleWithFixedDelay(runnable, INIT_POLLING_DELAY_S, POLLING_DELAY_12HR_S,
TimeUnit.SECONDS);
logger.debug("Status collection '{}' will start in '{}' seconds.", getThing().getUID(),
INIT_POLLING_DELAY_S);
} else if (tivoConfigData.doPollChanges()) {

View File

@ -84,6 +84,13 @@ public class TivoStatusProvider {
logger.debug(" statusRefresh '{}' - EXISTING status data - '{}'", tivoConfigData.getCfgIdentifier(),
tivoStatusData.toString());
}
// this will close the connection and re-open every 12 hours
if (tivoConfigData.isKeepConnActive()) {
connTivoDisconnect();
doNappTime();
}
connTivoConnect();
doNappTime();
if (!tivoConfigData.isKeepConnActive()) {