CONTEXT · HUỶ Nâng cao CA 06 / 08

Đóng tab lúc đang trừ kho

Đặt hàng gồm 2 bước: trừ kho rồi tạo hoá đơn, mất ~40s. Người dùng hay đóng tab giữa chừng. Câu hỏi là nên đưa context nào vào chuỗi xử lý:

func placeOrder(w http.ResponseWriter, r *http.Request) {
    ctx := ???              // r.Context()  HAY  context.Background() ?
    deductStock(ctx)        // ✓ đã trừ kho xong
    createInvoice(ctx)      // ✗ chưa kịp tạo hoá đơn thì tab bị đóng...
}

deductStock đã xong, createInvoice chưa. Nếu dùng r.Context() và user đóng tab ngay lúc này thì sao — và nên chọn gì?