Назад | Перейти на главную страницу

Заказ марионеточного узла

Может ли кто-нибудь помочь мне с упорядочением марионеточных узлов, я знаю, как управлять последовательностью внутри классов, используя require, before, subscribe etc но мне нужно быть на 100% уверенным, что мой node2 будет выполняться только после node1, потому что мой node2 не может работать без node1.

Это невозможно сделать в марионетке. Если вам нужно выполнить марионеточные прогоны между серверами в определенном порядке, вам нужно использовать другой инструмент для оркестровки прогонов.

Предполагая, что вы используете хосты Linux, но тогда вы также можете сделать то же самое с хостом Windows, используя альтернативный подход к bash. Несколько обобщенный подход мог бы быть следующим ...

  1. В самом конце марионеточного запуска для node1 создайте определенный файл на node2. Для этого используйте ssh как команду в ресурсе марионетки. Ssh можно использовать для выполнения команды на удаленном хосте для создания файла, что довольно просто. Вы бы поместили это в ресурс exec в самом конце запуска марионетки на node1.

  2. Создайте сценарий bash на узле 2, который в основном ожидает появления файла, а затем возвращает успешный результат, когда он присутствует. Этот сценарий можно создать с использованием файлового ресурса на раннем этапе запуска марионетки на узле node2. Простой сценарий bash.

  3. Ближе к началу запуска марионетки для узла 2, после того, как вы создали сценарий bash, запустите тот же сценарий bash в ресурсе exec марионетки. Он будет ждать создания файла - в основном, ожидая завершения запуска марионетки на узле 1, прежде чем продолжить.

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