【问题标题】:java executor service on hazelcast queuehazelcast队列上的java执行程序服务
【发布时间】:2013-02-22 19:53:48
【问题描述】:

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

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

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

提前致谢!!

【问题讨论】:

    标签: java hazelcast


    【解决方案1】:

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

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

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

    假设job实现了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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      • 2018-03-24
      • 2012-11-10
      • 1970-01-01
      • 2012-03-19
      相关资源
      最近更新 更多