commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Xiaodan Zhou (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DBUTILS-83) Add "BatchUploader" (related to DBUTILS-78 but different)
Date Wed, 09 Nov 2011 17:01:54 GMT
Add "BatchUploader" (related to DBUTILS-78 but different)
---------------------------------------------------------

                 Key: DBUTILS-83
                 URL: https://issues.apache.org/jira/browse/DBUTILS-83
             Project: Commons DbUtils
          Issue Type: New Feature
    Affects Versions: Nightly Builds
            Reporter: Daniel Xiaodan Zhou
            Priority: Minor


I have created a BatchUploader class in one of my project, and thought I might contribute
it to DbUtils.

It is similar to DBUTILS-78, but is different. It is basically a "producer-consumer" queue,
where you application produce rows, and BatchUploader "consumes" the rows and write them back
to the database. DBUTILS-78 also uses multi-threading, but it doesn't have the "producer-consumer"
queue. So you could imagine cases where you add too many rows in a batch before run executeBatch()
and cause "Java Out of Memory". Also, BatchUploader only uses simple Thread class, so it's
more compatible to other Java libraries compared to using ExecutorService/Future.

Here's how you use BatchUploader in you application:

uploader = new BatchUploader(threadName, dbConnection, sqlStmt);
uploader.start();
while (...) {
  uploader.put(...); //  here you put each row in the queue
}
uploader.accomplish();
// some other code ...
uploader.join(); // wait the uploader to finish before moving to the rest of the code.
// continue running ...


The code attached is directly copied from my project. If people here think it should go into
DbUtils, I can add more javadoc and remove the specific things that were used in my project
to make it more general.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message