0

我想问是否有人可以为后端计划的作业建议适当的框架。目前整个后端基于多个计划的作业。所有作业都是用 java 编写并部署在 linux 机器上。这些作业由 cron(使用 crontab)和简单的 bash 脚本作为包装器控制,所以基本上我有几个 jars(它们都是基于 spring 的 uber-jars [带有依赖项]),它们会定期触发。这些 java 模块正在做各种各样的事情,比如处理 csv/xml 文件、从 web 服务获取数据、调用外部 API (HTTP) 以及从 FTP 收集数据。是否有一个框架让我能够将所有模块放在一个地方并简单地管理它们?我在考虑骆驼(我以前用过),但对我来说必须的是:

  1. 能够在不中断其余模块的情况下部署/取消部署单个模块。
  2. 在运行时重新安排作业(cron 表达式)的能力。

Camel 几乎是完美的,因为它具有用于外部集成(FTP、HTTP、WS)的所有功能,并且还具有简单的石英集成功能。我不知道拥有多个模块并在运行时部署/取消部署它们是否可以实现。

也许还有其他一些框架可以满足我的需求。请建议。

4

2 回答 2

1

如果计划在 Java/Scala 中执行此操作,请尝试使用Quartz 它(也)提供了类似 CRON 的语法来调度作业。

我们将我们的“模块”作为 webapps 部署在一个简单的 servlet 容器(jetty)上,并使用 Quartz 调度程序在它们上触发操作(也在 webapp 中公开一个简单的 UI)

于 2013-03-20T10:20:57.767 回答
0

为了管理模块的加载和卸载,您可能希望查看基于 OSGI 的东西,例如Apache ServiceMix,它在您描述的方式中似乎特别适合模块管理(我承认我不太了解您对加载和卸载模块)。将 Quartz 添加到 ServiceMix 以安排作业。

于 2013-03-21T22:11:26.173 回答