是否可以在Web应用程序中运行cron作业?

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

例如,每隔15分钟,清除日志数据库。

你能以独立于容器的方式执行此操作,还是必须使用tomcat或其他容器运行?

请指定方法是保证在特定时间运行还是每15分钟运行一次,但如果应用程序循环使用(如果您使用计时器,那么它是如何在.net中)可以重置等等。

如第23章“调度和线程池”中所述 ,Spring通过Timer和Quartz Scheduler( http://www.quartz-scheduler.org/ )的集成类提供调度支持。 对于简单的需求,我建议使用JDK Timer

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

如果您使用的是Spring,则可以使用内置的Quartz或Timer挂钩。 请参见http://static.springsource.org/spring/docs/2.5.x/reference/scheduling.html

它将是特定于容器的。 您可以使用Quartz的 Java或仅使用Java的调度并发工具( ScheduledExecutorService )或OS级别的cron作业来完成。

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

工作是面向批处理的。 通过手动触发器或cron风格(如您所愿)。

我仍然没有得到webapp和cron式工作之间的关系? 我能想到的唯一的webapp用例是,你想要一个HTTP端点来触发一个工作(但是这反对你关于’cron-style’的声明)。

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