Skip to content

Commit 1e97a42

Browse files
committed
Improve cancellation behavior
1 parent 8fe4edb commit 1e97a42

2 files changed

Lines changed: 16 additions & 3 deletions

File tree

SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceAnalysisUpgradeCode.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.apache.logging.log4j.Logger;
77
import org.biojava.nbio.core.exceptions.CompoundNotFoundException;
88
import org.biojava.nbio.core.sequence.DNASequence;
9+
import org.jetbrains.annotations.Nullable;
910
import org.labkey.api.collections.CaseInsensitiveHashMap;
1011
import org.labkey.api.data.CompareType;
1112
import org.labkey.api.data.Container;
@@ -19,6 +20,8 @@
1920
import org.labkey.api.exp.api.ExpData;
2021
import org.labkey.api.exp.api.ExperimentService;
2122
import org.labkey.api.module.ModuleContext;
23+
import org.labkey.api.pipeline.CancelledException;
24+
import org.labkey.api.pipeline.PipelineJob;
2225
import org.labkey.api.query.FieldKey;
2326
import org.labkey.api.security.User;
2427
import org.labkey.api.sequenceanalysis.RefNtSequenceModel;
@@ -237,10 +240,10 @@ public void updateBarcodeRC(final ModuleContext moduleContext)
237240
@DeferredUpgrade
238241
public void migrateSequenceDirs(final ModuleContext moduleContext)
239242
{
240-
doSequenceMigration(moduleContext.getUpgradeUser(), _log, 100000);
243+
doSequenceMigration(moduleContext.getUpgradeUser(), _log, 100000, null);
241244
}
242245

243-
public static void doSequenceMigration(User u, Logger log, int maxSequences)
246+
public static void doSequenceMigration(User u, Logger log, int maxSequences, @Nullable PipelineJob job)
244247
{
245248
try
246249
{
@@ -262,6 +265,16 @@ public static void doSequenceMigration(User u, Logger log, int maxSequences)
262265
if (processed % 1000 == 0)
263266
{
264267
log.info("{} of {} sequence files migrated", processed, nts.size());
268+
if (job != null)
269+
{
270+
job.updateStatusForTask();
271+
if (job.isCancelled())
272+
{
273+
throw new CancelledException();
274+
}
275+
276+
job.setStatus(PipelineJob.TaskStatus.running, "Processed " + processed + " of " + nts.size());
277+
}
265278
}
266279

267280
ExpData legacyExpData = ExperimentService.get().getExpData(nt.getSequenceFile());

SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/SequenceMigrationPipelineJob.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ private SequenceMigrationPipelineJob getPipelineJob()
136136
@Override
137137
public @NotNull RecordedActionSet run() throws PipelineJobException
138138
{
139-
SequenceAnalysisUpgradeCode.doSequenceMigration(getPipelineJob().getUser(), getPipelineJob().getLogger(), -1);
139+
SequenceAnalysisUpgradeCode.doSequenceMigration(getPipelineJob().getUser(), getPipelineJob().getLogger(), -1, getPipelineJob());
140140

141141
return new RecordedActionSet();
142142
}

0 commit comments

Comments
 (0)