java - 在多个服务器上执行 ScheduledExecutorService

标签 java websphere scheduledexecutorservice

我有一个耳朵,将作为后端耳朵部署在多个服务器上。在那个耳朵中,我需要添加 ScheduledExecutorService 以在特定时间从数据库中获取一些记录并处理它们。但我只需要处理一次,而不是在将部署耳朵的所有服务器上。仅在 java8 上使用 ScheduledExecutorService 可以实现这一点吗?或者我是否需要使用另一个可以实现此目的的库?

最佳答案

java.util.concurrent.ScheduledExecutorService是Java SE定义的接口(interface)。它没有指定任何实现应用程序服务器之间的感知或协调的要求。即使是 Java EE 定义的 javax.enterprise.concurrent.ManagedScheduledExecutorService 接口(interface),也没有任何跨不同应用程序服务器之间调度的感知/协调的要求,因此当前提供的实现WebSphere Application Server 目前不提供此功能。然而,Java EE 中的另一种技术确实提供了此功能:持久 EJB 计时器。请参阅linked knowledge center article作为传统 WebSphere Application Server 的起点。如果您使用的是 WebSphere Application Server Liberty,则该功能当前更加有限,并且缺乏任务执行在分配运行该任务的服务器出现故障时跨服务器进行故障转移的能力。目前有针对 Liberty 的增强请求。

关于java - 在多个服务器上执行 ScheduledExecutorService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56866501/

相关文章:

java - Android 中来自谷歌服务的网络错误

filter - 在 websphere 8.5 中配置全局过滤器

java - 调度线程池执行器 : How to priorize Tasks?

multithreading - 如何在基于servlet的Web应用程序中运行后台任务?

java - webjars -> HTTP 406

java - 如何访问Java中枚举中的内部类

java - 隐藏 Jackson 序列化中的 protected 字段

web-applications - 如何设置 IBM Websphere 8 在不同端口上为 Web 应用程序提供服务?

java - 在 Websphere Application Server 8.5 上运行的 Web 应用程序中的字符编码

java - 根据 ThreadFactory 的可运行输入的实例类型为 ExecutorService ScheduledExecutorService 实现自定义命名