如果这是一个明显的问题,我深表歉意,但是可以说我有一个Java应用程序,该应用程序不断向yahoo Finance API查询当前股票报价。我可以存储此程序,并使其在共享的Web托管服务器上连续运行,而又不与客户端(我的桌面)保持持续通信吗?我需要在主机空间中安装JVM吗?
与此同时,该应用程序是否能够像在台式计算机上运行一样创建文本并写入文本文件?这样,我可以每天查询一次应用程序以下载文本文件,而不必担心程序占用了计算机的RAM。
最后,由于我的Web主机仅提供x数量的RAM,因此有一种方法可以确定我的应用程序正在使用多少RAM。
如果您可以提供任何文献,可以使我有必要了解有关该主题的一般数据,我将不胜感激。
我可以存储此程序,并使其在共享的Web托管服务器上连续运行,而又不与客户端(我的桌面)保持持续通信吗?
如果这是一个Web应用程序,并且他们正在运行类似Tomcat(我认为AWS Elastic Beanstalk或多或少都在运行),则可以。只需确保load-on-startup
在部署描述符(web.xml)中将过滤器或servlet标记为标志,然后安排API调用就应该很容易了。我将从ScheduledExecutorService
那开始。Java Webapp与通常运行PHP,Python和Perl的方式不同,它更像是应用程序中的代码在Web服务器的整个生命周期中都存在,而不仅仅是请求的生存期,因此单个实例将为Webapp部署的生命周期。设置的资源init()
(如线程)甚至不会在关闭之前被GC。线程甚至可能不会被GC化(提示:不要忽略该destroy()
方法。
我需要在主机空间中安装JVM吗?
哦,好吧,如果您有“托管空间”,那么您可以做您想做的事情,那么,为什么还要担心这是“网络托管”而不仅仅是租用服务器?实际上,有两种托管方式:一种为您提供虚拟机/物理机,您可以做自己想做的事(想想EC2),另一种则使您可以绝妙地访问以P开头的几种脚本语言,Apache和cgi-bin ,可能是modphp以及您只能控制有限的托管MySQL实例。
与此同时,该应用程序是否能够像在台式计算机上运行一样创建文本并写入文本文件?这样,我可以每天查询一次应用程序以下载文本文件,而不必担心程序占用了计算机的RAM。
也许。看看File.createTempFile()
。或将您的数据存储在数据库中,并在收到请求时将其重新实现为CSV或其他形式/give-me-my-data
。但是,实际上,内存是如此便宜,并且这种数据压缩得如此之好,我不确定是否会担心还没完成。
最后,由于我的Web主机仅提供x数量的RAM,因此有一种方法可以确定我的应用程序正在使用多少RAM。
Runtime.getRuntime().*memory()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句