public abstract class CallbackWarehouseTask extends Object implements org.sakaiproject.warehouse.service.WarehouseTask
Alternative to the BaseWarehouseTask. For really large datasets building up a giant list in memory before writing out to the db results in out of memory issues. Extending from this task will help.
The execute() method simply prepares the db (setup up the table, clears it etc). In your derived class you want to call execute(Object) with each entity as you go. This will batch up a smaller list and then send that to the ChildWarehouseTask which will do the real persistence. You need to call flush at the end of your work to make sure any remaining objects gets flushed out to the db.
| Modifier and Type | Field and Description |
|---|---|
protected org.apache.commons.logging.Log |
logger |
| Constructor and Description |
|---|
CallbackWarehouseTask() |
| Modifier and Type | Method and Description |
|---|---|
void |
execute() |
protected void |
execute(boolean flush) |
void |
execute(Object object) |
void |
flush() |
int |
getBatchsize() |
DataSource |
getDataSource() |
org.sakaiproject.warehouse.service.DataWarehouseManager |
getDataWarehouseManager() |
InputStream |
getTableDdl() |
String |
getTableDdlResource() |
org.sakaiproject.warehouse.service.ChildWarehouseTask |
getTask() |
void |
init()
This method loads the tables and registers the task.
|
protected abstract void |
process() |
void |
setBatchsize(int batchsize) |
void |
setDataSource(DataSource dataSource) |
void |
setDataWarehouseManager(org.sakaiproject.warehouse.service.DataWarehouseManager dataWarehouseManager) |
void |
setTableDdlResource(String tableDdlResource) |
void |
setTask(org.sakaiproject.warehouse.service.ChildWarehouseTask task) |
public void execute()
throws org.quartz.JobExecutionException
execute in interface org.sakaiproject.warehouse.service.WarehouseTaskorg.quartz.JobExecutionExceptionpublic void init()
public InputStream getTableDdl()
protected abstract void process()
public DataSource getDataSource()
public void setDataSource(DataSource dataSource)
public org.sakaiproject.warehouse.service.ChildWarehouseTask getTask()
public void setTask(org.sakaiproject.warehouse.service.ChildWarehouseTask task)
public String getTableDdlResource()
public void setTableDdlResource(String tableDdlResource)
public org.sakaiproject.warehouse.service.DataWarehouseManager getDataWarehouseManager()
public void setDataWarehouseManager(org.sakaiproject.warehouse.service.DataWarehouseManager dataWarehouseManager)
public int getBatchsize()
public void setBatchsize(int batchsize)
Copyright © 2003-2014 Sakai Project. All Rights Reserved.