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=succeeded、total_rows=50000、processed_rows=50000、created_count=50000、updated_count=0、skipped_count=0、error_count=0。
  • showcase_account 中存在本轮前缀对应的全部 50,000 条记录,count(distinct name)=50000。
  • 原始 QA 复现 2/2 次;独立复核又复现 1/1 次,累计 3/3 次结果一致。

Import history shows succeeded

影响

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

Activity

  1. changed the title [-]fix(import): running async jobs cannot be cancelled on local SQLite[/-] [+]bug(import): running async jobs do not stop after cancellation[/+] on Jul 14, 2026
  2. changed the title [-]bug(import): running async jobs do not stop after cancellation[/-] [+]问题(导入):取消后,运行中的异步任务仍未停止[/+] on Jul 16, 2026
  3. self-assigned this
    on Jul 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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