Java 中的守护进程:简单的日程应用程序?
该应用程序必须执行与网络服务的连接,抓取数据,并将其保存在数据库中。 每小时 24/7。 在java中创建这样的应用程序最有效的方法是什么?
它应该如何运行——作为系统应用程序还是作为 Web 应用程序?
This app must perform connection to a web service, grab data, save it in the database.
Every hour 24/7.
What's the most effective way to create such an app in java?
How should it be run - as a system application or as a web application?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
保持简单:使用 cron(或任务调度程序)
如果这就是您想要做的全部事情,即每小时探测一次 Web 服务,请将其作为控制台应用程序并使用 cron 运行。
每小时启动和停止的应用程序
Keep it simple: use cron (or task scheduler)
If that's all what you want to do, namely to probe some web service once an hour, do it as a console app and run it with cron.
An app that starts and stops every hour
看看quartz,它是java中的一个调度库。他们有示例代码可以帮助您入门。
您需要它以及您选择的数据库的 JDBC 驱动程序。
不需要 Web 容器 - 这可以使用独立应用程序轻松完成
look at quartz, its a scheduling library in java. they have sample code to get you started.
you'd need that and the JDBC driver to your database of choice.
no web container required - this can be easily done using a stand alone application
尝试 ScheduledExecutorService。
Try the ScheduledExecutorService.
为什么不使用 cron 每小时启动一次 Java 应用程序?如果 Java 应用程序在其余时间没有执行任何操作,则无需占用服务器资源来保持 Java 应用程序处于活动状态,只需在需要时启动它即可,
Why not use cron to start the Java application every hour? No need to soak up server resources keeping the Java application active if it's not doing anything the rest of the time, just start it when needed,
如果你打算用 java 来做这件事,一个简单的计时器就足够了。
If you are intent on doing it in java a simple Timer would be more than sufficient.
创建一个网页并使用众多在线调度服务之一来安排其执行。其中大多数都是免费的,使用起来非常简单并且非常可靠。有些允许您创建任何复杂性的计划,就像在 cron、SqlServer 作业 UI 等中一样。为您省去了很多创建/调试/维护自己的计划引擎的麻烦,即使它基于 Ncron、Quartz 等框架。我是根据我自己的经历来说的。
Create a web page and schedule its execution with one of many online scheduling services. The majority of them are free, very simple to use and very reliable. Some allows you to create schedules of any complexity just like in cron, SqlServer job UI, etc. Saves you a LOT of headache creating/debugging/maintaining your own scheduling engine, even if it's based on some framework like Ncron, Quartz, etc. I'm speaking from my own experience.