首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以块为单位从数据库读取数据并对其运行进程的executorservice服务

以块为单位从数据库读取数据并对其运行进程的executorservice服务
EN

Stack Overflow用户
提问于 2014-06-03 11:21:35
回答 1查看 1.7K关注 0票数 2

我正在尝试编写一个从数据库读取数据并将其上传到云数据存储的过程。

如何决定数据的分区策略?我想以块为单位查询表,并在10个线程中处理每个块。每个线程基本上都会将数据发送到云上10节点集群上的单个节点。

在下面的多线程代码中,提取并发送10个并发请求以将数据上传到云中的数据查询将位于何处?非常重要的一点是,对于到目前为止我的数据库查询已经处理过的内容,我没有松开游标以防失败,因此在数据库中,例如,一旦处理了一批100条记录,它就应该将该记录的数据库列中的记录状态从PENDING更新为DONE。此作业将每10分钟运行一次,以便从源数据库中提取数据。

代码语言:javascript
复制
public class Caller {
    public static void main(String[] args) {

        ExecutorService executor = Executors.newFixedThreadPool(10);

          for (int i = 0; i < 10; i++) {
                Runnable worker = new DomainCDCProcessor(i);
                executor.execute(worker);
              }
            executor.shutdown();
            while (!executor.isTerminated()) {
            }
            System.out.println("Finished all threads");
        }


    }
EN

回答 1

Stack Overflow用户

发布于 2014-06-03 22:59:40

在启动工作器之前执行select,以确定要处理的记录的所有主要ID的集合或范围(第一个ID-最后一个ID)。给每个工人一个子集或范围部分来工作。确保工人不会在给定的设置或范围内外出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24006595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档