如何运行一个bean作为后台服务?

How to run a bean as a background service?

我需要能够在启动时启动一个 bean,并使用某种内部 event/time 循环(寻找要处理的数据记录)使它 运行 一直在后台运行。我想知道正确的 Java EE 7/ JBoss EAP 6.2 方法是什么。

有什么想法吗?

使用 Quartz Scheduler 框架并按照配置启动作业。

这取决于你想达到什么目的。您可以通过多种方式实现既定目标。我能想到的一些是:-

1)使用spring在启动时自动实例化单例bean并在启动时调用init方法

2)在web应用方面,可以使用loadOnstartUp servlet配置

3)使用 quarts 作业 运行 后台作业

EJB 在这种情况下应该可以正常工作(标准 Java EE - 不需要外部框架)

我假设您需要 'pull' 数据模式,而不是 'listen' 数据事件组件

  1. 启动单例 EJB
  2. 编写查询数据存储库的业务逻辑

    @单例 @Startup //容器在启动时或应用程序部署时初始化bean public class MySingletonEJB{

    @Schedule //根据所需的时间表配置此注释,例如通过类似 Cron 的语法 public void executeJob(){ //.... 搜索数据记录 }

    }