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ì?