mirror of
https://github.com/outline/outline.git
synced 2026-06-13 03:14:59 +03:00
fix: Graceful exit when import is canceled beneath import task (#12497)
This commit is contained in:
@@ -53,7 +53,6 @@ export default abstract class APIImportTask<
|
||||
*/
|
||||
public async perform({ importTaskId }: Props) {
|
||||
let importTask = await ImportTask.findByPk<ImportTask<T>>(importTaskId, {
|
||||
rejectOnEmpty: true,
|
||||
include: [
|
||||
{
|
||||
model: Import,
|
||||
@@ -63,6 +62,12 @@ export default abstract class APIImportTask<
|
||||
],
|
||||
});
|
||||
|
||||
// The import_task row may have been deleted (e.g. its Import was removed)
|
||||
// between the job being enqueued and the worker picking it up. Nothing to do.
|
||||
if (!importTask) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't process any further when the associated import is canceled by the user.
|
||||
if (importTask.import.state === ImportState.Canceled) {
|
||||
importTask.state = ImportTaskState.Canceled;
|
||||
@@ -107,7 +112,6 @@ export default abstract class APIImportTask<
|
||||
const importTask = await ImportTask.findByPk<ImportTask<T>>(
|
||||
importTaskId,
|
||||
{
|
||||
rejectOnEmpty: true,
|
||||
include: [
|
||||
{
|
||||
model: Import,
|
||||
@@ -120,6 +124,10 @@ export default abstract class APIImportTask<
|
||||
}
|
||||
);
|
||||
|
||||
if (!importTask) {
|
||||
return;
|
||||
}
|
||||
|
||||
importTask.state = ImportTaskState.Errored;
|
||||
await importTask.save({ transaction });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user