gpt4 book ai didi

java - 使用集群在 JBoss 上调度任务

转载 作者:行者123 更新时间:2023-11-30 07:38:18 24 4
gpt4 key购买 nike

我需要能够为在 JBoss 4.2 上运行的 EJB 应用程序运行一些计划任务(报告)。

在我最初的实现中,我在关联的 WAR 中使用 servlet 从属性文件中读取一些配置,然后使用计时器服务 API 重置计划任务。这可行,但在 Web 项目中关闭初始化似乎有点尴尬。此外,我不确定当应用程序部署在集群环境中时,这是否会按预期工作。

完成此类任务的最佳实践是什么?我应该使用定时器服务以外的东西吗?有没有更好的方法在服务器启动时初始化定时器?

最佳答案

也许看看Quartz Scheduler .引用其网站:

Quartz is a full-featured, open source job scheduling system that can be integrated with, or used along side virtually any J2EE or J2SE application - from the smallest stand-alone application to the largest e-commerce system. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs; jobs whose tasks are defined as standard Java components or EJBs. The Quartz Scheduler includes many enterprise-class features, such as JTA transactions and clustering.

我过去曾用它来触发 EJB 作业,整个解决方案运行良好,具有很好的可扩展性。要将它与 EJB 一起使用,您需要使用 JobStoreCMT存储调度信息(作业、触发器和日历)。要调整作业执行的资源,请查看 Configure ThreadPool Settings医生。然后,如果 EJB 部署在集群上,则只需让 EJB 客户端完成其工作,对不同实例的请求进行负载平衡。

Quartz 本身也可以是clustered在需要时通过故障转移和负载平衡获得高可用性和可扩展性。

关于你提到的属性文件,我不确定你需要读取什么样的数据,但是,如果没有 servlet,如果你需要读取某些东西,你将不得不从数据库中读取它。

关于java - 使用集群在 JBoss 上调度任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2043608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com