0

Octopus を使用して、TeamCity によって構築されたいくつかの Topshelf サービスをデプロイしています。Octopus のデプロイでは、nuget パッケージからサービスをインストール/再インストールして開始する powershell スクリプトが実行されます。

私の問題は、これらのサービスが、新しい展開によって中断されるべきではない重要なアクティビティの途中にある可能性があることです。新しいバージョンを展開するには、サービスがこれらの処理を完了するまで待ちたいと思います。これに対する良い解決策を見つけることができませんでした。この状況を処理する典型的な方法は何でしょうか? 現在、私のタコの触手は「リスニング」モードに設定されています。

4

2 に答える 2

0

1 つのオプションは、最初の展開タスクをユーザー介入タスクにすることです。これは、新しいバージョンがビルドされて準備ができており、展開が実行されているが一時停止していることを意味します。ユーザー介入タスクを承認すると、展開は通常どおり続行されます。

自動化したい場合は、サービス (ま​​たはそのジョブ キューなど) をポーリングし、サービスがビジー状態のときにループ状態になる Powershell スクリプトを作成できます。これは、展開の最初のステップになる可能性があります。サービスがアイドル状態になると、スクリプトはコード 0 で終了し、デプロイが続行されます。

于 2016-01-21T09:03:01.397 に答える