Spec-Zone .ru
спецификации, руководства, описания, API
|
V
- Вычисленное значение ScheduledServicepublic abstract class ScheduledService<V> extends Service<V>
ScheduledService является a Service
который автоматически перезапустит себя после того, как успешное выполнение, и при некоторых условиях перезапустит даже в случае отказа. Новый ScheduledService начинается в Состоянии готовности, так же, как нормальная Служба. После вызова start
или restart
, ScheduledService введет ЗАПЛАНИРОВАННОЕ состояние для продолжительности, определенной delay
.
Однажды ВЫПОЛНЕНИЕ ScheduledService выполнит свою Задачу. На успешном завершении ScheduledService перейдет к состоянию, за КОТОРЫМ СЛЕДУЮТ, и затем к Состоянию готовности и назад к ЗАПЛАНИРОВАННОМУ состоянию. Количество времени, которым ScheduledService останется в этом состоянии, зависит от количества времени между последним изменением состояния к ВЫПОЛНЕНИЮ, и текущее время, и period
. Короче говоря, period
определяет минимальное количество времени от запуска одного выполнения и запуска следующего. Если предыдущее выполнение, завершенное прежде period
истекает, тогда ScheduledService останется в ЗАПЛАНИРОВАННОМ состоянии, пока период не истечет. Если с другой стороны выполнение заняло больше времени чем установленный период, то ScheduledService сразу перейдет назад к ВЫПОЛНЕНИЮ.
Если, РАБОТАЯ, Задача ScheduledService бросит ошибку, или некоторым другим способом заканчивает тем, что перешел к ОТКАЗАВШЕМУ, то ScheduledService или перезапустит или выйдет, в зависимости от значений для backoffStrategy
, restartOnFailure
, и maximumFailureCount
.
Если отказ происходит и restartOnFailure
ложь, тогда ScheduledService перейдет к ОТКАЗАВШЕМУ и остановится. Чтобы перезапустить отказавший ScheduledService, следует вызвать перезапуск вручную.
Если отказ происходит и restartOnFailure
истина, тогда, ScheduledService может перезапустить автоматически. Во-первых, результат вызова backoffStrategy
станет новым cumulativePeriod
. Таким образом, после каждого отказа, можно заставить службу ожидать более длительный и более длительный промежуток времени перед перезапуском. Как только задача завершается успешно, cumulativePeriod сбрасывается к значению period
.
ScheduledService определяет статический EXPONENTIAL_BACKOFF_STRATEGY и реализации LOGARITHMIC_BACKOFF_STRATEGY, которых LOGARITHMIC_BACKOFF_STRATEGY является значением по умолчанию для backoffStrategy. После maximumFailureCount
достигается, ScheduledService перейдет к ОТКАЗАВШЕМУ точно таким же образом как будто restartOnFailure
была ложь.
Если period
или delay
изменяется, в то время как ScheduledService работает, новые значения будут приняты во внимание на следующей итерации. Например, если period
увеличивается, тогда в следующий раз, когда ScheduledService вводит ЗАПЛАНИРОВАННОЕ состояние, новое period
будет использоваться. Аналогично, если delay
изменяется, новое значение будут соблюдать на следующем перезапуске или сбрасывать/запускать.
ScheduledService<Document> svc = new ScheduledService<>(Duration.seconds(1)) {
protected Task<Document> createTask() {
return new Task<Document>() {
protected Document call() {
// Connect to a Server
// Get the XML document
// Parse it into a document
return document;
}
}
}
}
Этот пример проверит с помощью ping-запросов удаленный сервер каждая 1 секунда. Синхронизация для этого class не абсолютно надежна. Очень занятый поток события мог бы ввести некоторую задержку синхронизации в начало выполнения фоновой задачи, таким образом, очень маленькие значения в течение периода или задержки, вероятно, будут неточны. Задержка или период в сотнях миллисекунд или больше должна быть довольно надежной.
У ScheduledService в его конфигурации значения по умолчанию есть значение по умолчанию period
из 0 и значение по умолчанию delay
из 0. Это заставит ScheduledService выполнять задачу непосредственно после Service.start()
, и перевыполнение непосредственно после успешного завершения.
Поскольку это имеет целью этого class, любая Продолжительность, которая отвечает на истину на Duration.isUnknown()
обработает ту продолжительность, как будто это была Продолжительность. НУЛЬ. Аналогично, любая Продолжительность, которая отвечает на истину на Duration.isIndefinite()
будет обработан, как будто это была продолжительность Двойных. Миллисекунды MAX_VALUE. Любая нулевая Продолжительность обрабатывается как Продолжительность. НУЛЬ. Любая пользовательская реализация обратного вызова стратегии возврата должна быть подготовлена обработать эти различные потенциальные ценности.
ScheduledService представляет новое вызванное свойство lastValue
. lastValue является значением, которое было последним успешно вычисленное. Поскольку Служба очищает value
свойство на каждом выполнении, и потому что ScheduledService сразу перенесет выполнение после завершения (если это не введет отмененные или состояния отказа), свойство значения не чрезмерно полезно на ScheduledService. В большинстве случаев Вы будете хотеть вместо этого использовать значение, возвращенное lastValue.
Service.ready()
, Service.scheduled()
, Service.running()
, succeeded()
, cancelled()
, и failed()
методы реализуются в этом class. Подклассы, которые также переопределяют эти методы, должны заботиться, чтобы вызвать реализацию высшего качества.Ввести | Свойство и Описание |
---|---|
ObjectProperty<Callback<ScheduledService<?>,Duration>> |
backoffStrategy
Вычисляет количество времени, чтобы добавить к периоду при каждом отказе.
|
ReadOnlyObjectProperty<Duration> |
cumulativePeriod
Текущий совокупный период в использовании между итерациями.
|
ReadOnlyIntegerProperty |
currentFailureCount
Текущее число раз ScheduledService перестало работать.
|
ObjectProperty<Duration> |
задержка
Начальная задержка между тем, когда ScheduledService сначала запускается, и когда это начнет работу.
|
ReadOnlyObjectProperty |
lastValue
Последнее успешно вычисленное значение.
|
ObjectProperty<Duration> |
maximumCumulativePeriod
Максимальное позволенное значение для cumulativePeriod.
|
IntegerProperty |
maximumFailureCount
Максимальное количество времен, которые может привести к сбою ScheduledService прежде, чем это просто закончится в Состоянии отказа.
|
ObjectProperty<Duration> |
период
Минимальное количество времени, чтобы позволить между запуском последнего выполнения и запуском следующего запуска.
|
BooleanProperty |
restartOnFailure
Указывает, должен ли ScheduledService автоматически перезапустить в случае отказа в Задаче.
|
Рабочий. Государство
Модификатор и Тип | Поле и Описание |
---|---|
static Callback<ScheduledService<?>,Duration> |
EXPONENTIAL_BACKOFF_STRATEGY
Реализация Обратного вызова для
backoffStrategy свойство, которое будет по экспоненте возврат период между повторными выполнениями в случае отказа. |
static Callback<ScheduledService<?>,Duration> |
LINEAR_BACKOFF_STRATEGY
Реализация Обратного вызова для
backoffStrategy свойство, которое будет линейно возврат период между повторными выполнениями в случае отказа. |
static Callback<ScheduledService<?>,Duration> |
LOGARITHMIC_BACKOFF_STRATEGY
Реализация Обратного вызова для
backoffStrategy свойство, которое будет логарифмически возврат период между повторными выполнениями в случае отказа. |
Конструктор и Описание |
---|
ScheduledService() |
Модификатор и Тип | Метод и Описание |
---|---|
ObjectProperty<Callback<ScheduledService<?>,Duration>> |
backoffStrategyProperty()
Вычисляет количество времени, чтобы добавить к периоду при каждом отказе.
|
protected void |
cancelled()
Защищенный метод удобства для подклассов, вызванных всякий раз, когда состояние Задачи перешло к ОТМЕНЕННОМУ состоянию.
|
ReadOnlyObjectProperty<Duration> |
cumulativePeriodProperty()
Текущий совокупный период в использовании между итерациями.
|
ReadOnlyIntegerProperty |
currentFailureCountProperty()
Текущее число раз ScheduledService перестало работать.
|
ObjectProperty<Duration> |
delayProperty()
Начальная задержка между тем, когда ScheduledService сначала запускается, и когда это начнет работу.
|
protected void |
executeTask(Task<V> task)
Использование
executor определенный на этой Службе, чтобы выполнить данную задачу. |
protected void |
failed()
Защищенный метод удобства для подклассов, вызванных всякий раз, когда состояние Задачи перешло к Состоянию отказа.
|
Callback<ScheduledService<?>,Duration> |
getBackoffStrategy()
Получает значение свойства backoffStrategy.
|
Продолжительность |
getCumulativePeriod()
Получает значение свойства cumulativePeriod.
|
int |
getCurrentFailureCount()
Получает значение свойства currentFailureCount.
|
Продолжительность |
getDelay()
Получает значение задержки свойства.
|
V |
getLastValue()
Получает значение свойства lastValue.
|
Продолжительность |
getMaximumCumulativePeriod()
Получает значение свойства maximumCumulativePeriod.
|
int |
getMaximumFailureCount()
Получает значение свойства maximumFailureCount.
|
Продолжительность |
getPeriod()
Получает значение периода свойства.
|
boolean |
getRestartOnFailure()
Получает значение свойства restartOnFailure.
|
ReadOnlyObjectProperty |
lastValueProperty()
Последнее успешно вычисленное значение.
|
ObjectProperty<Duration> |
maximumCumulativePeriodProperty()
Максимальное позволенное значение для cumulativePeriod.
|
IntegerProperty |
maximumFailureCountProperty()
Максимальное количество времен, которые может привести к сбою ScheduledService прежде, чем это просто закончится в Состоянии отказа.
|
ObjectProperty<Duration> |
periodProperty()
Минимальное количество времени, чтобы позволить между запуском последнего выполнения и запуском следующего запуска.
|
void |
reset()
Сбрасывает Службу.
|
BooleanProperty |
restartOnFailureProperty()
Указывает, должен ли ScheduledService автоматически перезапустить в случае отказа в Задаче.
|
void |
setBackoffStrategy(Callback<ScheduledService<?>,Duration> value)
Устанавливает значение свойства backoffStrategy.
|
void |
setDelay(Duration value)
Устанавливает значение задержки свойства.
|
void |
setMaximumCumulativePeriod(Duration value)
Устанавливает значение свойства maximumCumulativePeriod.
|
void |
setMaximumFailureCount(int value)
Устанавливает значение свойства maximumFailureCount.
|
void |
setPeriod(Duration value)
Устанавливает значение периода свойства.
|
void |
setRestartOnFailure(boolean value)
Устанавливает значение свойства restartOnFailure.
|
protected void |
succeeded()
Защищенный метод удобства для подклассов, вызванных всякий раз, когда состояние Задачи перешло к состоянию, за КОТОРЫМ СЛЕДУЮТ.
|
addEventFilter, addEventHandler, buildEventDispatchChain, cancel, createTask, exceptionProperty, executorProperty, fireEvent, getException, getExecutor, getMessage, getOnCancelled, getOnFailed, getOnReady, getOnRunning, getOnScheduled, getOnSucceeded, getProgress, getState, getTitle, getTotalWork, getValue, getWorkDone, isRunning, messageProperty, onCancelledProperty, onFailedProperty, onReadyProperty, onRunningProperty, onScheduledProperty, onSucceededProperty, progressProperty, ready, removeEventFilter, removeEventHandler, restart, running, runningProperty, scheduled, setEventHandler, setExecutor, setOnCancelled, setOnFailed, setOnReady, setOnRunning, setOnScheduled, setOnSucceeded, start, stateProperty, titleProperty, totalWorkProperty, valueProperty, workDoneProperty
public final ObjectProperty<Продолжительность> delayProperty
Service.start()
или Service.restart()
.getDelay()
, setDelay(Duration)
public final ObjectProperty<Продолжительность> periodProperty
cumulativePeriod
) будет зависеть от этого свойства так же как backoffStrategy
и число отказов.getPeriod()
, setPeriod(Duration)
public final ObjectProperty<Callback<ScheduledService<?>,Продолжительность>> backoffStrategyProperty
getBackoffStrategy()
, setBackoffStrategy(Callback)
public final BooleanProperty restartOnFailureProperty
getRestartOnFailure()
, setRestartOnFailure(boolean)
public final IntegerProperty maximumFailureCountProperty
getMaximumFailureCount()
, setMaximumFailureCount(int)
public final ReadOnlyIntegerProperty currentFailureCountProperty
getCurrentFailureCount()
public final ReadOnlyObjectProperty<Продолжительность> cumulativePeriodProperty
period
, кроме после отказа, когда результат backoffStrategy будет использоваться в качестве совокупного периода после каждого отказа. Это сбрасывается всякий раз, когда ScheduledService вручную перезапускается, или итерация успешна. cumulativePeriod изменяется, когда ScheduledService вводит запланированное состояние. cumulativePeriod может быть ограничен, устанавливая maximumCumulativePeriod
.getCumulativePeriod()
public final ObjectProperty<Продолжительность> maximumCumulativePeriodProperty
public final ReadOnlyObjectProperty lastValueProperty
getLastValue()
public static final Callback<ScheduledService<?>,Продолжительность> EXPONENTIAL_BACKOFF_STRATEGY
backoffStrategy
свойство, которое будет по экспоненте возврат период между повторными выполнениями в случае отказа. Это вычисление занимает исходный период и число последовательных отказов и вычисляет количество возврата от той информации. Если service
нуль, тогда Продолжительность. НУЛЬ возвращается. Если период будет 0 тогда, то результат этого метода просто будет Math.exp(currentFailureCount)
. Во всех других случаях возвращенное значение является тем же самым как {@code период + (период * Math.exp (currentFailureCount))).
public static final Callback<ScheduledService<?>,Продолжительность> LOGARITHMIC_BACKOFF_STRATEGY
backoffStrategy
свойство, которое будет логарифмически возврат период между повторными выполнениями в случае отказа. Это вычисление занимает исходный период и число последовательных отказов и вычисляет количество возврата от той информации. Если service
нуль, тогда Продолжительность. НУЛЬ возвращается. Если период будет 0 тогда, то результат этого метода просто будет Math.log1p(currentFailureCount)
. Во всех других случаях возвращенное значение является тем же самым как {@code период + (период * Математика log1p (currentFailureCount))).
public static final Callback<ScheduledService<?>,Продолжительность> LINEAR_BACKOFF_STRATEGY
backoffStrategy
свойство, которое будет линейно возврат период между повторными выполнениями в случае отказа. Это вычисление занимает исходный период и число последовательных отказов и вычисляет количество возврата от той информации. Если service
нуль, тогда Продолжительность. НУЛЬ возвращается. Если период будет 0 тогда, то результат этого метода просто будет currentFailureCount
. Во всех других случаях возвращенное значение является тем же самым как {@code период + (период * currentFailureCount).
public ScheduledService()
public final Продолжительность getDelay()
Service.start()
или Service.restart()
.public final void setDelay(Duration value)
Service.start()
или Service.restart()
.public final ObjectProperty<Продолжительность> delayProperty()
Service.start()
или Service.restart()
.getDelay()
, setDelay(Duration)
public final Продолжительность getPeriod()
cumulativePeriod
) будет зависеть от этого свойства так же как backoffStrategy
и число отказов.public final void setPeriod(Duration value)
cumulativePeriod
) будет зависеть от этого свойства так же как backoffStrategy
и число отказов.public final ObjectProperty<Продолжительность> periodProperty()
cumulativePeriod
) будет зависеть от этого свойства так же как backoffStrategy
и число отказов.getPeriod()
, setPeriod(Duration)
public final Callback<ScheduledService<?>,Продолжительность> getBackoffStrategy()
public final void setBackoffStrategy(Callback<ScheduledService<?>,Duration> value)
public final ObjectProperty<Callback<ScheduledService<?>,Продолжительность>> backoffStrategyProperty()
getBackoffStrategy()
, setBackoffStrategy(Callback)
public final boolean getRestartOnFailure()
public final void setRestartOnFailure(boolean value)
public final BooleanProperty restartOnFailureProperty()
getRestartOnFailure()
, setRestartOnFailure(boolean)
public final int getMaximumFailureCount()
public final void setMaximumFailureCount(int value)
public final IntegerProperty maximumFailureCountProperty()
getMaximumFailureCount()
, setMaximumFailureCount(int)
public final int getCurrentFailureCount()
public final ReadOnlyIntegerProperty currentFailureCountProperty()
getCurrentFailureCount()
public final Продолжительность getCumulativePeriod()
period
, кроме после отказа, когда результат backoffStrategy будет использоваться в качестве совокупного периода после каждого отказа. Это сбрасывается всякий раз, когда ScheduledService вручную перезапускается, или итерация успешна. cumulativePeriod изменяется, когда ScheduledService вводит запланированное состояние. cumulativePeriod может быть ограничен, устанавливая maximumCumulativePeriod
.public final ReadOnlyObjectProperty<Продолжительность> cumulativePeriodProperty()
period
, кроме после отказа, когда результат backoffStrategy будет использоваться в качестве совокупного периода после каждого отказа. Это сбрасывается всякий раз, когда ScheduledService вручную перезапускается, или итерация успешна. cumulativePeriod изменяется, когда ScheduledService вводит запланированное состояние. cumulativePeriod может быть ограничен, устанавливая maximumCumulativePeriod
.getCumulativePeriod()
public final Продолжительность getMaximumCumulativePeriod()
public final void setMaximumCumulativePeriod(Duration value)
public final ObjectProperty<Продолжительность> maximumCumulativePeriodProperty()
public final V getLastValue()
public final ReadOnlyObjectProperty lastValueProperty()
getLastValue()
protected void executeTask(Task<V> task)
Service
Использование executor
определенный на этой Службе, чтобы выполнить данную задачу. Если executor
нуль, затем исполнитель значения по умолчанию используется, который создаст новый поток демона, на котором можно выполнить эту задачу.
Этот метод предназначается только, чтобы быть вызванным реализацией Службы.
executeTask
в class Service<V>
task
- ненулевая задача выполнитьсяprotected void succeeded()
Service
protected void cancelled()
Service
protected void failed()
Service
Copyright (c) 2008, 2013, Oracle и/или его филиалы. Все права защищены. Использование подвергается