Ограничить одним экземпляром службы во всех узлах сервисной структуры - PullRequest
0 голосов
/ 30 апреля 2019

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

Я строго хочу запустить один пакетный процесс. В настоящее время я установил InstanceCount этого сервиса равным 1 в ApplicationManifest.xml. Что будет, если будет несколько узлов? Будет ли у меня еще один экземпляр этого сервиса? или как сделать так, чтобы у этой службы был один экземпляр независимо от количества узлов / разделов?

1 Ответ

2 голосов
/ 30 апреля 2019

В настоящее время я установил InstanceCount этого сервиса равным 1 в ApplicationManifest.xml. Что будет, если будет несколько узлов? Будет ли у меня еще один экземпляр этой службы?

Если имеется несколько узлов, только один будет содержать основной активный экземпляр. Другие узлы могут размещать реплики, которые вступают во владение при необходимости, например, когда узел, на котором живет первичный экземпляр, выходит из строя.

как мне убедиться, что эта служба имеет один экземпляр независимо от количества узлов / разделов?

Мы рассмотрели несколько узлов в первой части ответа. Относительно разделов: службы без сохранения состояния имеют только 1 раздел, поэтому он не играет роли в отношении вашего вопроса.

Для получения дополнительных справочных материалов прочитайте документы о жизненном цикле службы и о жизненных циклах реплик

...