Абстрактный класс Service<V> реализует интерфейсы Worker<V> и javafx.event.EventTarget и обеспечивает создание и запуск объекта Task, а также отображение свойств выполнения фоновой задачи в основном потоке JavaFX-приложения.
Конкретные реализации абстрактного класса Service<V> должны переопределять его метод createTask(), отвечающий за создание фоновой задачи Task.
В отличие от объекта Task, объект Service является повторно используемым, так как методы класса Service<V> позволяют сбросить и перезапустить объект Service.
Класс Service<V> имеет следующие свойства, конструкторы и методы:
Свойство state – поле перечисления javafx.concurrent.Worker.State, указывающее состояние выполнения задачи в фоновом потоке. Перечисление Worker.State имеет следующие поля:
public static final Worker.State READY – выполнение задачи готово к запуску.
public static final Worker.State SCHEDULED – выполнение задачи запланировано к запуску, но еще не запущено.
public static final Worker.State RUNNING – выполнение задачи запущено.
public static final Worker.State SUCCEEDED – задача выполнена успешно.
public static final Worker.State CANCELLED – выполнение задачи прервано.
public static final Worker.State FAILED – при выполнении задачи произошла ошибка.
Свойство value – результат выполнения задачи.
Свойство exception – объект java.lang.Throwable ошибки выполнения задачи.
Свойство workDone – текущее количественное выполнение задачи от -1 до totalWork.
Свойство totalWork – максимальное количественное выполнение задачи.
Свойство progress – текущее процентное выполнение задачи.
Свойство running – если true, тогда состояние выполнения задачи SCHEDULED или RUNNING.
Свойство message – сообщение, связанное с текущим состоянием выполнения задачи.
Свойство title – заголовок данной задачи.
Свойство executor – объект java.util.concurrent.Executor, отвечающий за работу данного объекта Service.
Свойство onReadyProperty – объект ObjectProperty<EventHandler<WorkerStateEvent>>, обертывающий обработчик состояния READY выполнения задачи.
Свойство onScheduledProperty – объект ObjectProperty<EventHandler<WorkerStateEvent>>, обертывающий обработчик состояния SCHEDULED выполнения задачи.
Свойство onRunningProperty – объект ObjectProperty<EventHandler<WorkerStateEvent>>, обертывающий обработчик состояния RUNNING выполнения задачи.
Свойство onSucceededProperty – объект ObjectProperty<EventHandler<WorkerStateEvent>>, обертывающий обработчик состояния SUCCEEDED выполнения задачи.
Свойство onCancelledProperty – объект ObjectProperty<EventHandler<WorkerStateEvent>>, обертывающий обработчик состояния CANCELLED выполнения задачи.
Свойство onFailedProperty – объект ObjectProperty<EventHandler<WorkerStateEvent>>, обертывающий обработчик состояния FAILED выполнения задачи.
Конструктор protected Service().
Метод public final Worker.State getState() – возвращает текущее состояние выполнения задачи.
Метод public final ReadOnlyObjectProperty<Worker.State> stateProperty() – возвращает JavaFX Beans свойство текущего состояния выполнения задачи.
Метод public final V getValue() – возвращает результат выполнения задачи.
Метод public final ReadOnlyObjectProperty<V> valueProperty() – возвращает JavaFX Beans свойство результата выполнения задачи.
Метод public final java.lang.Throwable getException() – возвращает ошибку выполнения задачи.
Метод public final ReadOnlyObjectProperty<java.lang.Throwable> exceptionProperty() – возвращает JavaFX Beans свойство ошибки выполнения задачи.
Метод public final double getWorkDone() – возвращает текущее количественное выполнение задачи от -1 до totalWork.
Метод public final ReadOnlyDoubleProperty workDoneProperty() – возвращает JavaFX Beans свойство текущего количественного выполнения задачи.
Метод public final double getTotalWork() – возвращает максимальное количественное выполнение задачи.
Метод public final ReadOnlyDoubleProperty totalWorkProperty() – возвращает JavaFX Beans свойство максимального количественного выполнения задачи.
Метод public final double getProgress() – возвращает текущее процентное выполнение задачи.
Метод public final ReadOnlyDoubleProperty progressProperty() – возвращает JavaFX Beans свойство текущего процентного выполнения задачи.
Метод public final boolean isRunning() – возвращает true, если выполнение задачи имеет статус SCHEDULED или RUNNING.
Метод public final ReadOnlyBooleanProperty runningProperty() – возвращает JavaFX Beans свойство статуса выполнения задачи SCHEDULED или RUNNING.
Метод public final java.lang.String getMessage() – возвращает сообщение, связанное с текущим состоянием выполнения задачи.
Метод public final ReadOnlyStringProperty messageProperty() – возвращает JavaFX Beans свойство сообщения, связанного с текущим состоянием выполнения задачи.
Метод public final java.lang.String getTitle() – возвращает заголовок данной задачи.
Метод public final ReadOnlyStringProperty titleProperty() – возвращает JavaFX Beans свойство заголовка данной задачи.
Метод public final boolean cancel() – прерывает выполнение задачи.
Метод public final void setExecutor(java.util.concurrent.Executor value) – устанавливает объект java.util.concurrent.Executor, отвечающий за работу данного объекта Service.
Метод public final java.util.concurrent.Executor getExecutor() – возвращает объект java.util.concurrent.Executor, отвечающий за работу данного объекта Service.
Метод public final ObjectProperty<java.util.concurrent.Executor> executorProperty() – возвращает JavaFX Beans свойство объекта java.util.concurrent.Executor, отвечающего за работу данного объекта Service.
Метод public final ObjectProperty<EventHandler<WorkerStateEvent>> onReadyProperty() – возвращает объект ObjectProperty<EventHandler<WorkerStateEvent>>, обертывающий обработчик состояния READY выполнения задачи.
Метод public final EventHandler<WorkerStateEvent> getOnReady() – возвращает обработчик состояния READY выполнения задачи.
Метод public final void setOnReady(EventHandler<WorkerStateEvent> value) – устанавливает обработчик состояния READY выполнения задачи.
Метод public final ObjectProperty<EventHandler<WorkerStateEvent>> onScheduledProperty() – возвращает объект ObjectProperty<EventHandler<WorkerStateEvent>>, обертывающий обработчик состояния SCHEDULED выполнения задачи.
Метод public final EventHandler<WorkerStateEvent> getOnScheduled() – возвращает обработчик состояния SCHEDULED выполнения задачи.
Метод public final void setOnScheduled(EventHandler<WorkerStateEvent> value) – устанавливает обработчик состояния SCHEDULED выполнения задачи.
Метод public final ObjectProperty<EventHandler<WorkerStateEvent>> onRunningProperty() – объект ObjectProperty<EventHandler<WorkerStateEvent>>, обертывающий обработчик состоянияRUNNING выполнения задачи.
Метод public final EventHandler<WorkerStateEvent> getOnRunning() – возвращает обработчик состояния RUNNING выполнения задачи.
Метод public final void setOnRunning(EventHandler<WorkerStateEvent> value) – устанавливает обработчик состояния RUNNING выполнения задачи.
Метод public final ObjectProperty<EventHandler<WorkerStateEvent>> onSucceededProperty() – возвращает объект ObjectProperty<EventHandler<WorkerStateEvent>>, обертывающий обработчиксостояния SUCCEEDED выполнения задачи.
Метод public final EventHandler<WorkerStateEvent> getOnSucceeded() – возвращает обработчик состояния SUCCEEDED выполнения задачи.
Метод public final void setOnSucceeded(EventHandler<WorkerStateEvent> value) – устанавливает обработчик состояния SUCCEEDED выполнения задачи.
Метод public final ObjectProperty<EventHandler<WorkerStateEvent>> onCancelledProperty() – возвращает объект ObjectProperty<EventHandler<WorkerStateEvent>>, обертывающий обработчиксостояния CANCELLED выполнения задачи.
Метод public final EventHandler<WorkerStateEvent> getOnCancelled() – возвращает обработчик состояния CANCELLED выполнения задачи.
Метод public final void setOnCancelled(EventHandler<WorkerStateEvent> value) – устанавливает обработчик состояния CANCELLED выполнения задачи.
Метод public final ObjectProperty<EventHandler<WorkerStateEvent>> onFailedProperty() – возвращает объект ObjectProperty<EventHandler<WorkerStateEvent>>, обертывающий обработчиксостояния FAILED выполнения задачи.
Метод public final EventHandler<WorkerStateEvent> getOnFailed() – возвращает обработчик состояния FAILED выполнения задачи.
Метод public final void setOnFailed(EventHandler<WorkerStateEvent> value) – устанавливает обработчик состояния FAILED выполнения задачи.
Метод public void restart() – перезапускает объект Service.
Метод public void reset() – сбрасывает объект Service в статусе SUCCEEDED, FAILED или CANCELLED.
Метод public void start() – запускает объект Service.
Метод public final <T extends Event> void addEventHandler(EventType<T> eventType, EventHandler<? super T> eventHandler) – регистрирует обработчик событий задачи.
Метод public final <T extends Event> void removeEventHandler(EventType<T> eventType, EventHandler<? super T> eventHandler) – удаляет обработчик событий задачи.
Метод public final <T extends Event> void addEventFilter(EventType<T> eventType, EventHandler<? super T> eventFilter) – регистрирует фильтр событий задачи.
Метод public final <T extends Event> void removeEventFilter(EventType<T> eventType, EventHandler<? super T> eventFilter) – удаляет фильтр событий задачи.
Метод public EventDispatchChain buildEventDispatchChain(EventDispatchChain tail) – определяет цепочку адресации событий.
Метод protected abstract Task createTask() – создает фоновую задачу Task.
Абстрактный класс ScheduledService<V> расширяет класс Service<V> и представляет сервис, который автоматически перезагрузится после успешного выполнения задачи и при некоторых условиях перезагрузится в случае возникновения ошибки выполнения задачи.
Класс ScheduledService<V> имеет следующие свойства, конструкторы и методы:
Свойство delayProperty - первоначальная задержка между первым запуском и началом работы.
Свойство periodProperty - минимальное количество времени между последним запуском и следующим запуском.
Свойство backoffStrategyProperty - количество времени, добавляемое к периоду при каждой ошибке.
Свойство restartOnFailureProperty - если true, тогда сервис автоматически перезагружается при возникновении ошибки выполнения задачи.
Свойство maximumFailureCountProperty - максимальное количество попыток перезапуска при возникновении ошибки.
Свойство currentFailureCountProperty - текущее число попыток перезапуска при возникновении ошибки.
Свойство cumulativePeriodProperty - текущий совокупный период между перезапусками.
Свойство maximumCumulativePeriodProperty - верхняя граница совокупного периода.
Свойство lastValueProperty - последнее удачно вычисленное значение свойства.
Поле public static final Callback<ScheduledService<?>,Duration> EXPONENTIAL_BACKOFF_STRATEGY - период вычисляется по формуле {@code period + (period * Math.exp(currentFailureCount))).
Поле public static final Callback<ScheduledService<?>,Duration> LOGARITHMIC_BACKOFF_STRATEGY - период вычисляется по формуле {@code period + (period * Math.log1p(currentFailureCount))).
Поле public static final Callback<ScheduledService<?>,Duration> LINEAR_BACKOFF_STRATEGY - период вычисляется по формуле {@code period + (period * currentFailureCount).
Конструктор public ScheduledService()
Метод public final Duration getDelay(), public final void setDelay(Duration value), public final ObjectProperty<Duration> delayProperty() - возвращает и устанавливает задержку.
Метод public final Duration getPeriod(), public final void setPeriod(Duration value), public final ObjectProperty<Duration> periodProperty() - возвращает и устанавливает период.
Метод public final Callback<ScheduledService<?>,Duration> getBackoffStrategy(), public final void setBackoffStrategy(Callback<ScheduledService<?>,Duration> value), public final ObjectProperty<Callback<ScheduledService<?>,Duration>> backoffStrategyProperty() - возвращает и устанавливает количество времени, добавляемое к периоду при каждой ошибке.
Метод public final boolean getRestartOnFailure(), public final void setRestartOnFailure(boolean value), public final BooleanProperty restartOnFailureProperty() - возвращает и устанавливает свойство автоматической перезагрузки при возникновении ошибки выполнения задачи.
Метод public final int getMaximumFailureCount(), public final void setMaximumFailureCount(int value), public final IntegerProperty maximumFailureCountProperty() - возвращает и устанавливает свойство максимального количества попыток перезапуска при возникновении ошибки.
Метод public final int getCurrentFailureCount(), public final ReadOnlyIntegerProperty currentFailureCountProperty() - возвращает текущее число попыток перезапуска при возникновении ошибки.
Метод public final Duration getCumulativePeriod(), public final ReadOnlyObjectProperty<Duration> cumulativePeriodProperty() - возвращает текущий совокупный период между перезапусками.
Метод public final Duration getMaximumCumulativePeriod(), public final void setMaximumCumulativePeriod(Duration value), public final ObjectProperty<Duration> maximumCumulativePeriodProperty() - возвращает и устанавливает верхнюю границу совокупного периода.
Метод public final V getLastValue(), public final ReadOnlyObjectProperty<V> lastValueProperty() - возвращает последнее удачно вычисленное значение свойства.