3

Windows サーバーで TeamCity を実行しています。これは、TomCat を実行する Java ベースのビルド サービスであり、300MB という膨大な容量を使用します。私は時々しか使用しないので、他のサービス (Web サイト) が使用できるときにメモリを使い果たし、常に実行する価値はありません。

現在、サービスを使用する必要があるときにサービスを開始および停止するための単純な保護された Web ページがあります。

また、サービスがしばらくビルドを行わず、サービスを自動的にシャットダウンすることを確認するスクリプトも実装しました。

そのため、サービスがダウンしている場合、TeamCity ポート (9090) にアクセスしても応答がありません。ポートにアクセスできるようにしたいのですが、何かが自動的にサービスを開始し、再びアクセスできるようになります。

「仲介者」アプリケーション/プロキシ/パケット スニファーをポート 9090 でリッスンし、サービスが実行されていない場合は、サービスを開始してすべてのリクエストをそのサービスに転送することは可能ですか?

A から B へのすべてのリクエストをプロキシするパフォーマンスの問題を回避するために、これを http パケット スニファーとして実装することをお勧めします。

誰かが私を正しい方向に導くことができれば、必要に応じて C# で何かを実装する予定です。

4

2 に答える 2

0

あなた自身のアイデアは十分な解決策にかなり近いと思います.サービスをシャットダウンするたびに「仲介者」アプリケーションにポート9090でリッスンさせ、着信アクティビティでサービスを開始して終了し、TeamCity 用に 9090 を解放する必要があります...

于 2013-05-26T15:12:52.730 に答える
0

最後に、この問題をどのように解決したかについて言及したいと思いました。

TeamCity サービスが実行されているかどうかを確認するコードを実行するサブドメインを作成しました。開始されていない場合は、サービスを開始してから、TeamCity サイト ポートにリダイレクトします。すでに開始されている場合は、単にリダイレクトします。ビルドが一定期間開始されていない場合、サービスは自動的にシャットダウンし、メモリが解放されます。

于 2013-10-14T15:29:28.660 に答える