【问题标题】:Creating background job in java using crontab or ServletContextListener使用 crontab 或 ServletContextListener 在 java 中创建后台作业
【发布时间】:2020-11-29 13:54:37
【问题描述】:

我必须从数据库中读取数据并将表数据以 json 格式写入文件,然后该数据将在每天下午 5 点左右注入API。为此我需要创建scheduler。我已经创建了代码。

我有两种方法。

  1. 使用main class 创建简单的java 应用程序。创建一个 jar 并通过创建 crontab 作业在 unix box 中运行它。

  2. 使用ScheduledExecutorService 类创建ServletContextListener 并运行应用程序。

所以一个由unix box 运行,另一个由网络服务器运行。

哪种方法更好。我必须在产品中介绍这个设施,以便寻找最佳解决方案。请帮助我创造最好的产品。或者您是否可以指导在哪种情况下哪种方法更好?

【问题讨论】:

  • Shruti,请添加仅 Java 允许的特定情况。是否可以使用任何框架,例如春天还是玩耍?
  • 我们必须使用 vanila java。 Oracle 使用 OAF 和 ADF..即使在此应用程序中也不允许使用

标签: java multithreading web-applications cron scheduled-tasks


【解决方案1】:

我建议使用脚本语言,例如Groovy + crontab。
优点:

  • 易于编写的单个文件代码
  • 易于熟悉语言
  • 使用葡萄的依赖
  • 如果操作系统失败并恢复 crontab 可能会自行重启


缺点:

  • 您需要记住您正在使用的操作系统
  • crontab 的维护(只是不知道你对 Unix 管理的了解)

【讨论】:

  • 谢谢亚历克斯。实际上我在 Oracle 工作,我们不允许使用 Groovy。我们只能使用java。你能推荐一些java中的解决方案吗?
  • 对于您的具体情况,我会采取第一个选择:java main class + crontab。希望这会有所帮助。
猜你喜欢
  • 2011-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
  • 2021-06-10
相关资源
最近更新 更多