导出任务取消:点击后立即置为「已取消」,后台下一个检查点停止并删除半成品文件
This commit is contained in:
parent
ad65f0cc75
commit
6255179bf5
@ -67,7 +67,6 @@ class RunAccountBillsExportTask extends Command
|
||||
));
|
||||
$written++;
|
||||
if ($written % 2000 === 0) {
|
||||
$task = $tasks->patch($task, ['status' => 'running', 'rows' => $written]);
|
||||
// 用户在弹窗里点了「取消」:停止导出并删掉半成品文件。
|
||||
$fresh = $tasks->find((int) $task['user_id'], (string) $task['token']);
|
||||
if (! empty($fresh['cancel'])) {
|
||||
@ -78,6 +77,7 @@ class RunAccountBillsExportTask extends Command
|
||||
|
||||
return self::SUCCESS;
|
||||
}
|
||||
$task = $tasks->patch($task, ['status' => 'running', 'rows' => $written]);
|
||||
}
|
||||
}
|
||||
fclose($csv);
|
||||
|
||||
@ -451,7 +451,13 @@ class AccountBills extends Controller
|
||||
$status = (string) ($task['status'] ?? '');
|
||||
abort_if(in_array($status, ['done', 'failed', 'cancelled'], true), 409, '该任务已结束,无需取消。');
|
||||
|
||||
$tasks->patch($task, ['cancel' => true]);
|
||||
// 立刻显示「已取消」(排队中的任务没有进程去改状态,必须在这里定稿);
|
||||
// 运行中的任务会在下一个检查点停下并删掉半成品文件。
|
||||
$tasks->patch($task, [
|
||||
'cancel' => true,
|
||||
'status' => 'cancelled',
|
||||
'finished_at' => \Modules\EcommerceFinance\Services\AccountBillsExportTasks::beijingNow(),
|
||||
]);
|
||||
|
||||
return response()->json(['status' => 'ok'], 200, ['Cache-Control' => 'private, no-store']);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user