Надежная функция, не учитывающая имя центра задач - PullRequest
1 голос
/ 07 ноября 2019

У меня есть 2 Durable Function, работающие на одной и той же учетной записи хранения - одна имеет имя концентратора по умолчанию, а другая указана в host.json.

Каждая Durable Function имеет функцию с именем «RunOrchestrator», и онакажется, что когда новые задания добавляются в MyUtilityExecutorHub, их данные затем сохраняются в таблице DurableFunctionsHubInstances другой функции.

Так выглядит файл host.json для второй функции.

{
  "version": "2.0",
  "extensions": {
    "durableTask": {
      "hubName": "MyUtilityExecutorHub"
    }
  }
}

Файл host.json для второй функции такой же, как указано выше при просмотре в Kudu, так почему задания идут в неправильные резервные таблицы хранения?

Редактировать: это легко исправитьв нашем сценарии ради того, чтобы никогда не иметь дело с этим снова, нужно иметь учетную запись хранения для каждой функции, но я бы хотел докопаться до сути!

1 Ответ

0 голосов
/ 11 ноября 2019

из документа :

Имя - это то, что отличает один концентратор задач от другого, когда в учетной записи общего хранилища есть несколько концентраторов задач. Если у вас есть несколько функциональных приложений, использующих общую учетную запись хранения, вы должны явно настроить разные имена для каждого центра задач в файлах host.json. В противном случае приложения с несколькими функциями будут конкурировать друг с другом за сообщения, что может привести к неопределенному поведению, в том числе к неожиданному «застреванию» оркестровок в состоянии «Ожидание» или «Выполнение».

...