3

如何在 Web 应用程序中每年自动执行一项任务?Timer 类对此有帮助吗?我也听说过石英?我在他们的页面上注册了,但似乎不是免费的。感谢您的帮助。

4

3 回答 3

3

Quartz 绝对是一个不错的选择,它是免费和开源的,并且使用Apache 2.0 许可证(您无需注册即可下载)。如果您在 *nix 环境中,您也可以简单地使用 cron。

您也可以使用 ajava.util.Timer但我只会在您的用例非常琐碎的情况下这样做,并且您确保Timer在 Web 应用程序启动时基于某种类型的持久层正确地重新启动。

于 2012-11-24T03:25:35.197 回答
2

考虑与业务利益相关者核实一年只运行一次的工作是否真的应该完全自动化。根据我的经验,很可能会对日程安排(例如,今年应该在一周中的哪一天运行?)或在这么长时间后对工作的步骤进行细微的更改。

另外,未来还会有其他预定的作业添加到系统中吗?如果不是 - 如果每年只有一项工作,是否值得将自动执行的开销(实施、测试、监控等)添加到系统中?不经常运行的东西很容易被遗忘,当它坏掉时没人会注意到。

考虑这个替代方案:在您的应用程序中的某处添加一个按钮以手动启动工作,可能在管理页面上。如果您的应用程序有仪表板或登录页面,请添加一些仅对某些用户可见的信息,例如管理员 - 例如:“X 作业应该在 2011 年 11 月 23 日最后一次运行 - 请启动下一次运行2012 年 11 月 30 日之前”。

于 2012-11-24T03:43:52.913 回答
1

我建议你使用类似 cron 的东西。您的要求与 UNIX cron 守护程序的活动非常相似。有一个提供相同功能的 java 库,称为 cron4j (http://www.sauronsoftware.it/projects/cron4j/)。

以下是您可以使用的一些调度程序。

于 2012-11-24T03:50:28.223 回答