Использование execute.timeout.enabled вместе с execute.isolation.thread.timeoutInMilliseconds в Hystrix - PullRequest
1 голос
/ 25 сентября 2019

В нашем проекте мы используем приведенную ниже конфигурацию Hystrix.Я запутался насчет command.default.execution.timeout.enabled свойство .Это установлено как ложное, но наряду с этим у нас есть другое свойство, которое указывает timeoutInMilliseconds, которое, согласно моему пониманию, указывает время, после которого вызывающая сторона будет наблюдать тайм-аут.Так что, если время ожидания выполнения установлено как ложное на первом месте, какой смысл иметь второе свойство?Пожалуйста, дайте мне знать, если мое понимание неверно

#
# Hystrix configuration
#

hystrix:
  command.default.execution.timeout.enabled: false
  command.default.execution.isolation.thread.timeoutInMilliseconds: 60000

1 Ответ

0 голосов
/ 25 сентября 2019

Во-первых, пожалуйста, просмотрите документацию здесь .Это объясняется подробно.В начале страницы есть определение «По умолчанию».Пожалуйста, проверьте это.

Теперь перейдем к вашему конкретному вопросу
По умолчанию command.default.execution.timeout.enabled установлено значение true.Как вы можете видеть в этом разделе .Таким образом, с таким кодом

command.default.execution.timeout.enabled: false

вы переопределяете его как ложное.Это означает, что ни один из вызовов не будет превышен тайм-аутом Hystrix.Но вы также можете увидеть в этом же разделе, мы можем включить или отключить для конкретного экземпляра, используя commandkey.

То же самое относится к command.default.execution.isolation.thread.timeoutInMilliseconds

У нас есть значение по умолчанию, и мы также можем изменить это значение для определенной клавиши команды.

Предположим, в настоящее время у вас есть это

hystrix:
  command.default.execution.timeout.enabled: false
  command.default.execution.isolation.thread.timeoutInMilliseconds: 60000

Через несколько дней вы можете добавить что-то вроде

command.myinstancekey.execution.timeout.enabled: true

В этом случае тайм-аут включен только для myinstancekey и онистечет время ожидания в 60000, потому что оно принимает значение от

command.default.execution.isolation.thread.timeoutInMillisecond

Если у вас есть что-то вроде

command.myinstancekey.execution.isolation.thread.timeoutInMillisecond: 30000 

, то 30000 принимается как значение времени ожидания для mysinstancekey

...