Skip to content
Snippets Groups Projects
Commit 1ce35044 authored by felmer's avatar felmer
Browse files

use time limit as time limit of the task.

SVN: 28613
parent ee518dda
No related branches found
No related tags found
No related merge requests found
......@@ -31,6 +31,8 @@ import ch.systemsx.cisd.common.logging.LogFactory;
import ch.systemsx.cisd.common.maintenance.IMaintenanceTask;
import ch.systemsx.cisd.common.properties.PropertyUtils;
import ch.systemsx.cisd.common.time.DateTimeUtils;
import ch.systemsx.cisd.common.utilities.ITimeProvider;
import ch.systemsx.cisd.common.utilities.SystemTimeProvider;
import ch.systemsx.cisd.etlserver.postregistration.ICleanupTask;
import ch.systemsx.cisd.etlserver.postregistration.IPostRegistrationTask;
import ch.systemsx.cisd.etlserver.postregistration.IPostRegistrationTaskExecutor;
......@@ -93,6 +95,8 @@ public class PathInfoDatabaseFeedingTask implements IMaintenanceTask, IPostRegis
private IDataSetDirectoryProvider directoryProvider;
private ITimeProvider timeProvider;
private IPathsInfoDAO dao;
private IHierarchicalContentFactory hierarchicalContentFactory; // filesystem based
......@@ -112,19 +116,20 @@ public class PathInfoDatabaseFeedingTask implements IMaintenanceTask, IPostRegis
public PathInfoDatabaseFeedingTask(Properties properties, IEncapsulatedOpenBISService service)
{
this(service, getDirectoryProvider(), createDAO(), createContentFactory(),
getComputeChecksumFlag(properties), 0, 0, 0);
SystemTimeProvider.SYSTEM_TIME_PROVIDER, getComputeChecksumFlag(properties), 0, 0, 0);
}
@Private
PathInfoDatabaseFeedingTask(IEncapsulatedOpenBISService service,
IDataSetDirectoryProvider directoryProvider, IPathsInfoDAO dao,
IHierarchicalContentFactory hierarchicalContentFactory, boolean computeChecksum,
IHierarchicalContentFactory hierarchicalContentFactory, ITimeProvider timeProvider, boolean computeChecksum,
int chunkSize, int maxNumberOfChunks, long timeLimit)
{
this.service = service;
this.directoryProvider = directoryProvider;
this.dao = dao;
this.hierarchicalContentFactory = hierarchicalContentFactory;
this.timeProvider = timeProvider;
this.computeChecksum = computeChecksum;
this.chunkSize = chunkSize;
maxNumerOfChunks = maxNumberOfChunks;
......@@ -142,6 +147,7 @@ public class PathInfoDatabaseFeedingTask implements IMaintenanceTask, IPostRegis
{
service = ServiceProvider.getOpenBISService();
directoryProvider = getDirectoryProvider();
timeProvider = SystemTimeProvider.SYSTEM_TIME_PROVIDER;
dao = createDAO();
hierarchicalContentFactory = createContentFactory();
computeChecksum = getComputeChecksumFlag(properties);
......@@ -329,22 +335,18 @@ public class PathInfoDatabaseFeedingTask implements IMaintenanceTask, IPostRegis
{
return new IStopCondition()
{
private long minimum = Long.MAX_VALUE;
private long startTime = timeProvider.getTimeInMilliseconds();
private long maximum = Long.MIN_VALUE;
@Override
public void handle(SimpleDataSetInformationDTO dataSet)
{
long time = dataSet.getRegistrationTimestamp().getTime();
minimum = Math.min(minimum, time);
maximum = Math.max(maximum, time);
}
@Override
public boolean fulfilled()
{
return maximum - minimum > timeLimit;
return timeProvider.getTimeInMilliseconds() - startTime > timeLimit;
}
};
}
......
......@@ -34,6 +34,7 @@ import org.testng.annotations.Test;
import ch.rinn.restrictions.Friend;
import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
import ch.systemsx.cisd.common.logging.LogInitializer;
import ch.systemsx.cisd.common.utilities.MockTimeProvider;
import ch.systemsx.cisd.openbis.common.io.hierarchical_content.IHierarchicalContentFactory;
import ch.systemsx.cisd.openbis.common.io.hierarchical_content.api.IHierarchicalContent;
import ch.systemsx.cisd.openbis.common.io.hierarchical_content.api.IHierarchicalContentNode;
......@@ -139,7 +140,7 @@ public class PathInfoDatabaseFeedingTaskTest extends AbstractFileSystemTestCase
}
@Test
public void testAsMaintenanceTaskWithFinitNumberOfChunks()
public void testAsMaintenanceTaskWithFiniteNumberOfChunks()
{
final SimpleDataSetInformationDTO ds1 = dataSet(1000);
final SimpleDataSetInformationDTO ds2 = dataSet(2000);
......@@ -188,7 +189,7 @@ public class PathInfoDatabaseFeedingTaskTest extends AbstractFileSystemTestCase
}
@Test
public void testAsMaintenanceTaskWithFinitTimeLimit()
public void testAsMaintenanceTaskWithFiniteTimeLimit()
{
final SimpleDataSetInformationDTO ds1 = dataSet(1000);
final SimpleDataSetInformationDTO ds2 = dataSet(2000);
......@@ -222,7 +223,7 @@ public class PathInfoDatabaseFeedingTaskTest extends AbstractFileSystemTestCase
prepareCreateLastFeedingEvent(ds2.getRegistrationTimestamp());
prepareCreateLastFeedingEvent(ds4.getRegistrationTimestamp());
createTask(2, 0, 2000).execute();
createTask(2, 0, 1500).execute();
}
@Test
......@@ -453,7 +454,7 @@ public class PathInfoDatabaseFeedingTaskTest extends AbstractFileSystemTestCase
long timeLimite)
{
return new PathInfoDatabaseFeedingTask(service, directoryProvider, dao, contentFactory,
true, chunkSize, maxNumberOfChunks, timeLimite);
new MockTimeProvider(0, 1000), true, chunkSize, maxNumberOfChunks, timeLimite);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment