hazelcast 队列上的 java 执行器服务

标签 java hazelcast

我有一个 hazelcast 队列(在服务器实例之间共享),其中有 1000 条记录。记录是某种作业(例如发送电子邮件、短信等)。我需要通过从队列中挑选这些记录来处理它们。 为了加快速度,我正在考虑使用执行程序服务,以便多个线程异步处理记录。

此应用程序将部署在多个服务器上,因此我对多个服务器队列中记录的处理顺序有点困惑。我应该如何配置我的执行器,以便它从队列中获取记录并处理它们。我是否需要将执行器设置为每秒调用一次,以便它不断从处理中获取记录。

我不确定是否能够正确解释问题,但只是尝试在共享队列上使用执行程序服务(跨服务器实例)。

提前致谢!!

最佳答案

您可能需要考虑使用 hazelcast 执行器服务。我尝试过使用 hazelcast 队列作为本地线程池,但我的经验是它不能正确分配任务。

http://www.hazelcast.com/docs/2.5/manual/multi_html/ch09.html

它自动在集群中分配作业执行。

假设作业实现了 Callable,您可以执行以下操作

Future<T> future =  hazelcastInstance.getExecutorService([optional name]).submit(job);
//if you want the return value of the job, you can do this:
T value = future.get(); //This blocks until the job is done

您可以使用不同的名称配置多个分布式线程池。

关于hazelcast 队列上的 java 执行器服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15032199/

相关文章:

java - 安卓开发: Read outlook emails in own app activity

java - 没有 Spring Boot 的 Spring Data JPA

java - 使用 Hazelcast 确保数据中心之间的复制

java - Hazelcast 类路径错误

java - Android 代码播放位于 res/raw 中的 .wav 文件 - 奇怪的错误

java - 将年转换为世纪 - 如何改进/运行它

java - NashornScriptEngine 是线程安全的吗?

concurrency - 如何在少于 3 个节点的情况下使用 Hazelcast 的 CPSubsystem?

java - WAN 复制中的 Hazelcast 故障转移

kubernetes - 如何在具有不同 pod(App 和 Hazel 实例)的 kubernetes 中实现 hazelcast 同步?