mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-14 17:06:16 +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;
|
package org.sleuthkit.autopsy.ingest;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
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;
|
return errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,6 +180,9 @@ abstract class IngestTaskPipeline<T extends IngestTask> {
|
|||||||
List<IngestModuleError> errors = new ArrayList<>();
|
List<IngestModuleError> errors = new ArrayList<>();
|
||||||
if (!this.ingestJobPipeline.isCancelled()) {
|
if (!this.ingestJobPipeline.isCancelled()) {
|
||||||
pauseIfScheduled();
|
pauseIfScheduled();
|
||||||
|
if (ingestJobPipeline.isCancelled()) {
|
||||||
|
return errors;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
prepareTask(task);
|
prepareTask(task);
|
||||||
} catch (IngestTaskPipelineException ex) {
|
} catch (IngestTaskPipelineException ex) {
|
||||||
@ -188,6 +191,9 @@ abstract class IngestTaskPipeline<T extends IngestTask> {
|
|||||||
}
|
}
|
||||||
for (PipelineModule<T> module : modules) {
|
for (PipelineModule<T> module : modules) {
|
||||||
pauseIfScheduled();
|
pauseIfScheduled();
|
||||||
|
if (ingestJobPipeline.isCancelled()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
currentModule = module;
|
currentModule = module;
|
||||||
currentModule.setProcessingStartTime();
|
currentModule.setProcessingStartTime();
|
||||||
@ -228,6 +234,7 @@ abstract class IngestTaskPipeline<T extends IngestTask> {
|
|||||||
}
|
}
|
||||||
pauseStart = pauseStart.withHour(ScheduledIngestPauseSettings.getPauseStartTimeHour());
|
pauseStart = pauseStart.withHour(ScheduledIngestPauseSettings.getPauseStartTimeHour());
|
||||||
pauseStart = pauseStart.withMinute(ScheduledIngestPauseSettings.getPauseStartTimeMinute());
|
pauseStart = pauseStart.withMinute(ScheduledIngestPauseSettings.getPauseStartTimeMinute());
|
||||||
|
pauseStart = pauseStart.withSecond(0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Calculate the pause end date/time.
|
* 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.
|
* whatever time remains in the pause interval has expired.
|
||||||
*/
|
*/
|
||||||
LocalDateTime timeNow = LocalDateTime.now();
|
LocalDateTime timeNow = LocalDateTime.now();
|
||||||
long timeRemainingMillis = ChronoUnit.MILLIS.between(timeNow, pauseEnd);
|
if ((timeNow.equals(pauseStart) || timeNow.isAfter(pauseStart)) && timeNow.isBefore(pauseEnd)) {
|
||||||
if (timeNow.isAfter(pauseStart) && timeNow.isBefore(pauseEnd) && timeRemainingMillis > 0) {
|
|
||||||
ingestJobPipeline.registerPausedIngestThread(Thread.currentThread());
|
ingestJobPipeline.registerPausedIngestThread(Thread.currentThread());
|
||||||
try {
|
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);
|
sleep(timeRemainingMillis);
|
||||||
logger.log(Level.INFO, String.format("%s resuming at %s", Thread.currentThread().getName(), LocalDateTime.now()));
|
logger.log(Level.INFO, String.format("%s resuming at %s", Thread.currentThread().getName(), LocalDateTime.now()));
|
||||||
} catch (InterruptedException notLogged) {
|
} catch (InterruptedException notLogged) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user