在java web应用程序(servlets/spring mvc)中,使用tomcat,是否可以运行cron作业类型服务?

例如每 15 分钟清除一次日志数据库。

您能否以独立于容器的方式执行此操作,或者必须使用 tomcat 或其他容器来运行?

请指定该方法是保证在特定时间运行还是每 15 分钟运行一次,但可能会重置等。如果应用程序回收(如果您使用计时器,这就是 .net 中的情况)

有帮助吗?

解决方案

作为记录在第23章调度和线程池,Spring有通过集成类为Timer和Quartz调度( HTTP调度的支持://www.quartz- scheduler.org/ )。对于简单的需求,我建议你去与JDK Timer

请注意Java的调度通常被用来触发的Java的面向业务的工作的。对于系统管理员的任务(比如你给的例子),你应该更喜欢cron和传统的管理工具(bash中,等等)。

其他提示

如果你使用Spring,你可以使用内置的石英或定时器挂钩。请参见 http://static.springsource.org/spring/docs /2.5.x/reference/scheduling.html

它将是特定于容器的。你可以用Java来做 石英 或者只是使用 Java 的调度并发 utils (ScheduledExecutorService)或作为操作系统级 cron 作业。

每 15 分钟似乎有点极端。一般来说,我还建议您只截断/删除不再写入的日志文件(它们通常会在一夜之间滚动)。

的作业批次定向。通过手动触发或cron的式(你似乎想要的)。

不过我不明白的webapp和cron风格的工作之间的关系是?唯一的Web应用程序使用情况我能想到的是,你想有一个HTTP端点触发工作(但反对关于是“的cron式”的语句)。

通常使用专用的框架,它解决了上述问题区域“批处理作业”。我可以推荐石英。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top