Как контролировать порядок выполнения сервиса в сервисной фабрике applicationManifest или serviceManifest? - PullRequest
0 голосов
/ 07 марта 2019

В моем ServiceManifest.xml у меня есть два codePackages: первый кодовый пакет имеет одну точку входа установки A и одну точку входа B

  <CodePackage Name="Code" Version="1.0">
<SetupEntryPoint>
  <ExeHost>
    <Program>A.bat</Program>
    <WorkingFolder>CodePackage</WorkingFolder>
  </ExeHost>
</SetupEntryPoint>
<EntryPoint>
  <ExeHost>
    <Program>B.exe</Program>
    <WorkingFolder>Work</WorkingFolder>
  </ExeHost>
</EntryPoint>

второй код пакета одной точки входа c :

  <CodePackage Name="anotherCode" Version="1.0">
<EntryPoint>
  <ExeHost>
    <Program>C.exe</Program>
    <WorkingFolder>Work</WorkingFolder>
  </ExeHost>
</EntryPoint>

Я хочу, чтобы начальный порядок был A> B> C, это означает, что B будет выполнен после успешного завершения A, C будет выполнен после успешного завершения B. Теперь A будет оправдан в первую очередь из-за A находится под. но я не знаю, как контролировать порядок B и C.

Спасибо

1 Ответ

0 голосов
/ 18 марта 2019

Я не уверен, точное назначение этой цепочки выполнения, но то, что вы пытаетесь сделать, не работает.

SetupEntryPoint предназначено для выполнения в качестве сценария инициализации в порядкенастроить среду для запуска основной программы (исполняемого файла), например, создать папки, установить зависимости, скопировать данные и так далее.Это привилегированная точка входа, которая по умолчанию работает с теми же учетными данными, что и Service Fabric (обычно учетная запись NETWORKSERVICE), перед любой другой точкой входа. SetupEntryPoint исключает необходимость запуска узла службы с высокими привилегиями в течение продолжительных периодов времени.

EntryPoint - это основная программа (исполняемая), которая всегда будет работать, когдаслужба создана, она не предназначена для завершения (остановки) до тех пор, пока не будет запрошена сервисной фабрикой, если она остановится, сервисная фабрика примет ее как сбой и запустит снова.

CodePackage s предназначены для объединения нескольких программ (исполняемых файлов) как единой службы в пакете служб. Когда создается экземпляр службы для одного из этих типов служб, все пакеты кода, объявленные в манифесте, активируются путем запуска их точек входа.Обычно используется в сценариях, где вы выполняете два исполняемых файла, которые должны выполняться одновременно на одном и том же узле, например, основное приложение и сборщик журналов или сторожевое приложение, отслеживающее основное приложение.Когда запускается одно приложение, полный пакет будет скопирован на узел и пакеты кода активированы.

Если вы пытаетесь создать цепочку выполнения, вам следует:

  • Создайте службу для сохранения этого элемента управления и создайте (запустите) и удалите (остановите) эти пакеты по требованию, или
  • Создайте сценарий в качестве точки входа, которая продолжает запускать эти исполняемые файлы после того, как ранее завершилось
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...