3

我在我的 Windows 服务器上运行 TeamCity。它是一个运行 TomCat 的基于 Java 的构建服务,占用了 300MB 的空间。我只是偶尔使用它,所以它并不值得一直运行,当其他服务(网站)可以使用它时会耗尽内存。

目前我有一个简单的受保护网页,可以在需要使用它时启动和停止服务。

我还实现了一个脚本来查看服务何时没有进行任何构建并自动关闭服务。

因此,当服务关闭时,转到 TeamCity 端口 (9090) 会导致无响应。我希望能够访问该端口,然后某些东西会自动启动该服务,然后我可以再次访问它。

是否可以有一个“中间人”应用程序/代理/数据包嗅探器来监听端口 9090,如果服务没有运行,启动服务并将所有请求转发到该服务?

我更愿意将其实现为 http 数据包嗅探器,以避免代理从 A 到 B 的所有请求的任何性能问题。

如果有人能指出我正确的方向,那就太好了,如果需要,我计划在 C# 中实现一些东西。

4

2 回答 2

0

我认为您自己的想法非常接近一个足够好的解决方案:每当您关闭服务时让“中间人”应用程序在端口 9090 上侦听,并且在传入活动时它应该启动服务并退出,为 TeamCity 释放 9090 ...

于 2013-05-26T15:12:52.730 回答
0

只是想我会提到我最后是如何解决这个问题的。

我创建了一个子域,它运行一些代码来检查 TeamCity 服务是否正在运行。如果尚未启动,则它会启动服务,然后重定向到 TeamCity 站点端口。如果它已经开始,它只是重定向。当一段时间内没有开始构建时,服务会自动关闭,释放内存。

于 2013-10-14T15:29:28.660 回答