在共享Web主机上连续运行Java应用程序

在共享Web主机上连续运行Java应用程序,java,web-hosting,Java,Web Hosting,如果这是一个明显的问题,我很抱歉,但假设我有一个java应用程序,它不断地查询雅虎财经API以获取当前的股票报价。我是否可以存储此程序并使其在共享的web托管服务器上连续运行,而不必与客户端(我的桌面)进行持续通信?我需要在我的托管空间中安装JVM吗 除此之外,该应用程序是否能够像在台式计算机上运行一样创建文本并写入文本文件?这样我就可以每天查询一次应用程序来下载文本文件,而不用担心程序占用我的计算机内存 最后,有没有办法确定我的应用程序使用了多少RAM,因为我的web主机只提供x个RAM 如果

如果这是一个明显的问题,我很抱歉,但假设我有一个java应用程序,它不断地查询雅虎财经API以获取当前的股票报价。我是否可以存储此程序并使其在共享的web托管服务器上连续运行,而不必与客户端(我的桌面)进行持续通信?我需要在我的托管空间中安装JVM吗

除此之外,该应用程序是否能够像在台式计算机上运行一样创建文本并写入文本文件?这样我就可以每天查询一次应用程序来下载文本文件,而不用担心程序占用我的计算机内存

最后,有没有办法确定我的应用程序使用了多少RAM,因为我的web主机只提供x个RAM

如果您能提供任何文献,让我需要了解这个主题的一般数据,我将非常感激

我是否可以存储此程序并使其在共享的web托管服务器上连续运行,而不必与客户端(我的桌面)进行持续通信

如果这是一个webapp,并且他们运行的是类似于Tomcat的东西(我认为AWS弹性豆茎或多或少会这样),那么是的。只要确保在部署描述符(web.xml)中将过滤器或servlet标记为启动时加载,然后安排API调用就足够简单了。为此,我将从ScheduledExecutorService开始。与PHP、Python和Perl通常的运行方式不同,Java web应用程序更像是web服务器生命周期中的应用程序,而不仅仅是请求生命周期中的应用程序,因此单个实例将在web应用程序的部署生命周期中提供某种路径。在
init()
中设置的资源(如线程)在关闭之前甚至不会被GCed。线程甚至可能不会被GCed(提示:不要忽略
destroy()
方法)

我需要在我的托管空间中安装JVM吗

哦,好吧,如果你有“托管空间”,你可以做你想做的事情,那么为什么还要担心这是“网络托管”而不仅仅是租用服务器呢?实际上有两种托管方式:一种是给你一个虚拟机/物理机,你可以做你想做的事情(想想EC2),另一个让您可以不受限制地访问一些脚本语言,这些语言以P开头,Apache带有cgi-bin,可能是modphp,还有一个您控制有限的托管MySQL实例

除此之外,该应用程序是否能够像在台式计算机上运行一样创建文本并写入文本文件?这样,我就可以每天查询一次应用程序以下载文本文件,而不用担心程序占用我计算机的RAM

也许吧。查看
文件。createTempFile()
。或者将您的数据存储在数据库中,并将其重新物质化为CSV,或者,当请求
/将我的数据提供给我时。
。但实际上,内存是如此便宜,这种数据压缩得如此之好,我还不确定是否会担心它

最后,有没有办法确定我的应用程序使用了多少RAM,因为我的web主机只提供x个RAM


Runtime.getRuntime().*memory()

您可以使用每X分钟/小时/天运行一次的cron作业/计划任务来提取最新信息并将其存储在某个位置(例如数据库).然而,在我看来,这个问题对于堆栈溢出来说太宽泛了。我应该澄清一下,我问题的要点是,即使没有客户端连接,应用程序是否可以始终运行其计算?其他问题只是辅助问题。对于这个问题,没有通用的答案,因为不同的共享web主持人将以不同的方式处理此事。请与主持人的支持部门联系。非常详细和详细。我永远欠你的债,我的朋友!