mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-14 08:56:15 +00:00
7712 scheduled weekly ingest pause
This commit is contained in:
parent
f4462ed78e
commit
03675696f7
@ -18,6 +18,7 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.ingest;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
@ -597,6 +598,14 @@ final class IngestJobPipeline {
|
||||
}
|
||||
}
|
||||
|
||||
ScheduledIngestPauseSettings.setPauseEnabled(true);
|
||||
LocalDateTime testDateTime = LocalDateTime.now();
|
||||
testDateTime.plusMinutes(2);
|
||||
ScheduledIngestPauseSettings.setPauseDayOfWeek(testDateTime.getDayOfWeek());
|
||||
ScheduledIngestPauseSettings.setPauseStartTimeHour(testDateTime.getHour());
|
||||
ScheduledIngestPauseSettings.setPauseStartTimeMinute(testDateTime.getMinute());
|
||||
ScheduledIngestPauseSettings.setPauseDurationMinutes(2);
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
|
@ -180,6 +180,9 @@ abstract class IngestTaskPipeline<T extends IngestTask> {
|
||||
List<IngestModuleError> errors = new ArrayList<>();
|
||||
if (!this.ingestJobPipeline.isCancelled()) {
|
||||
pauseIfScheduled();
|
||||
if (ingestJobPipeline.isCancelled()) {
|
||||
return errors;
|
||||
}
|
||||
try {
|
||||
prepareTask(task);
|
||||
} catch (IngestTaskPipelineException ex) {
|
||||
@ -188,6 +191,9 @@ abstract class IngestTaskPipeline<T extends IngestTask> {
|
||||
}
|
||||
for (PipelineModule<T> module : modules) {
|
||||
pauseIfScheduled();
|
||||
if (ingestJobPipeline.isCancelled()) {
|
||||
break;
|
||||
}
|
||||
try {
|
||||
currentModule = module;
|
||||
currentModule.setProcessingStartTime();
|
||||
@ -228,6 +234,7 @@ abstract class IngestTaskPipeline<T extends IngestTask> {
|
||||
}
|
||||
pauseStart = pauseStart.withHour(ScheduledIngestPauseSettings.getPauseStartTimeHour());
|
||||
pauseStart = pauseStart.withMinute(ScheduledIngestPauseSettings.getPauseStartTimeMinute());
|
||||
pauseStart = pauseStart.withSecond(0);
|
||||
|
||||
/*
|
||||
* Calculate the pause end date/time.
|
||||
@ -241,11 +248,11 @@ abstract class IngestTaskPipeline<T extends IngestTask> {
|
||||
* whatever time remains in the pause interval has expired.
|
||||
*/
|
||||
LocalDateTime timeNow = LocalDateTime.now();
|
||||
long timeRemainingMillis = ChronoUnit.MILLIS.between(timeNow, pauseEnd);
|
||||
if (timeNow.isAfter(pauseStart) && timeNow.isBefore(pauseEnd) && timeRemainingMillis > 0) {
|
||||
if ((timeNow.equals(pauseStart) || timeNow.isAfter(pauseStart)) && timeNow.isBefore(pauseEnd)) {
|
||||
ingestJobPipeline.registerPausedIngestThread(Thread.currentThread());
|
||||
try {
|
||||
logger.log(Level.INFO, String.format("%s pausing at %s for %d minutes", Thread.currentThread().getName(), LocalDateTime.now(), TimeUnit.MILLISECONDS.toMinutes(timeRemainingMillis)));
|
||||
long timeRemainingMillis = ChronoUnit.MILLIS.between(timeNow, pauseEnd);
|
||||
logger.log(Level.INFO, String.format("%s pausing at %s for ~%d minutes", Thread.currentThread().getName(), LocalDateTime.now(), TimeUnit.MILLISECONDS.toMinutes(timeRemainingMillis)));
|
||||
sleep(timeRemainingMillis);
|
||||
logger.log(Level.INFO, String.format("%s resuming at %s", Thread.currentThread().getName(), LocalDateTime.now()));
|
||||
} catch (InterruptedException notLogged) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user