public void scheduleMqttReconnect() { WorkRequest mqttReconnectWorkRequest = new PeriodicWorkRequest.Builder(MQTTReconnectWorker.class, MIN_PERIODIC_INTERVAL_MILLIS, TimeUnit.MILLISECONDS) .addTag(PERIODIC_TASK_MQTT_RECONNECT) .setBackoffCriteria(BackoffPolicy.LINEAR, 30, TimeUnit.SECONDS) .setConstraints(anyNetworkConstraint) .build(); Timber.v("WorkManager queue task %s as %s", PERIODIC_TASK_MQTT_RECONNECT, mqttReconnectWorkRequest.getId()); workManager.cancelAllWorkByTag(PERIODIC_TASK_MQTT_RECONNECT); workManager.enqueue(mqttReconnectWorkRequest); }
public void scheduleLocationPing() { WorkRequest pingWorkRequest = new PeriodicWorkRequest.Builder(SendLocationPingWorker.class, preferences.getPing(), TimeUnit.MINUTES) .addTag(PERIODIC_TASK_SEND_LOCATION_PING) .setConstraints(anyNetworkConstraint) .build(); Timber.v("WorkManager queue task %s as %s with interval %s", PERIODIC_TASK_SEND_LOCATION_PING,pingWorkRequest.getId(), preferences.getPing()); workManager.cancelAllWorkByTag(PERIODIC_TASK_SEND_LOCATION_PING); workManager.enqueue(pingWorkRequest); }
public void scheduleMqttPing(long keepAliveSeconds) { WorkRequest mqttPingWorkRequest = new PeriodicWorkRequest.Builder(MQTTKeepaliveWorker.class, keepAliveSeconds, TimeUnit.SECONDS) .addTag(PERIODIC_TASK_MQTT_KEEPALIVE) .setConstraints(anyNetworkConstraint) .setBackoffCriteria(BackoffPolicy.LINEAR, 30, TimeUnit.SECONDS) .build(); Timber.v("WorkManager queue task %s as %s with interval %s", PERIODIC_TASK_MQTT_KEEPALIVE,mqttPingWorkRequest.getId(), keepAliveSeconds); workManager.cancelAllWorkByTag(PERIODIC_TASK_MQTT_KEEPALIVE); workManager.enqueue(mqttPingWorkRequest); }
@Override public void plantPeriodic(JobRequest request) { PeriodicWorkRequest workRequest = new PeriodicWorkRequest.Builder(PlatformWorker.class, request.getIntervalMs(), TimeUnit.MILLISECONDS, request.getFlexMs(), TimeUnit.MILLISECONDS) .setConstraints(buildConstraints(request)) .addTag(createTag(request.getJobId())) .build(); WorkManager workManager = getWorkManager(); if (workManager == null) { throw new JobProxyIllegalStateException("WorkManager is null"); } workManager.enqueue(workRequest); }