Skip to content

问题(导入):取消后,运行中的异步任务仍未停止 #2824

Description

@yinlianghui

问题

在已确认的本地 SQLite 场景中,用户在一个 50,000 行异步 CSV 导入仍处于 running 状态时点击取消,但后端任务没有停止。任务最终进入 succeeded 状态,并写入全部 50,000 行。

复现规则

使用固定测试版本和全新的本地 SQLite 环境。准备一批足以触发异步后台导入、且不会在取消操作前立即完成的有效记录;本次验证使用 50,000 条可唯一识别的记录,并选择始终新建。

  1. 启动异步导入。
  2. 确认任务仍为 running 且进度尚未完成。
  3. 点击取消。
  4. 等待后端任务进入终态,再核对 sys_import_job 的状态和处理计数,以及目标业务表的实际写入数量。

实际现象

点击取消时,任务仍处于 running 状态,进度为 0/50,000:

Cancel control visible while running

点击后,向导显示 cancelled、导入 0 行。该前端状态不一致问题由 objectstack-ai/objectui#2393 单独跟踪:

Wizard reports cancelled

同一个任务最终出现以下结果:

  • 导入历史显示成功、50,000/50,000、新建 50,000 条。
  • 独立复核的 sys_import_job 记录为 status=succeededtotal_rows=50000processed_rows=50000created_count=50000updated_count=0skipped_count=0error_count=0
  • showcase_account 中存在本轮前缀对应的全部 50,000 条记录,count(distinct name)=50000
  • 原始 QA 复现 2/2 次;独立复核又复现 1/1 次,累计 3/3 次结果一致。

Import history shows succeeded

影响

用户无法停止正在执行的大型导入。即使已经点击取消,后端仍可能继续写入剩余记录并以成功结束,造成用户未打算保留的数据完整落库,并增加后续清理成本。

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions