Cái này theo ngu ý của mình thì cứ mỗi ngày bạn tạo 1 temp table với id auto_increment, cứ insert vào temp table này trước, sau đó update ngược id này lại table bạn cần.
Từ bài toán getmax nên đẻ ra bài toán concurrency bạn ạ
Hiện tại thì cách hay nhất vãn là đẩy về database để xử lý hết như bạn Thương Nguyễn vừa nêu ở trên đó :
Thanks Bạn.
Mình đã có check lại thì chỗ code reset đang có vấn đề và sẽ gặp lỗi delay như bạn nói khi có quá nhiều user cùng spam.
Hiện tại dựa án đang sắp đến đoạn cuối nên kh cũng ko mong muốn đẻ thêm tool nên mình sẽ note lại phương án này để áp dụng sau này
Đây là bài toán concurrency chứ đâu phải GetMax như tiêu đề nhỉ.
Nếu SeqNo chỉ là auto increment thì có thể sử dụng 1 biến static và 1 atomic operation như Interlocked.Increment có được không bạn ? Như vậy thì sẽ đảm bảo ko bị race condition.
THẢO LUẬN
Nếu không start dc Server thì cài thêm node-js
Chúc suggestion của bạn được approve và vấn đề được giải quyết để team không bị tiếp tục ăn phốt
Thanks mọi người
Mình đang suggest theo cách này, còn 1 ngày để deploy lên stg, hi vọng sẽ đc approve
Chị ơi, chị có thể viết thêm về 2 phương pháp còn lại ko ạ? Em cảm ơn chị, post rất dễ hiểu ạ
cám ơn tác giả bài viết, nếu có thêm video nữa thì tuyệt
great!
Bạn Tùng nói đúng, cám ơn bạn, mình sẽ chỉnh lại trong bài viết đây :p
Bản chất của blank address.blank? ~~
Em thấy những bài viết trong series clean code của anh rất hay.
Cái nút con zun ở google trans là chức năng vẽ chữ chứ ko phải "dịch". Nó hoàn toàn phù hợp.
ngắn vại =))
Hihi nếu dùng code giữa 2 lần insert là khả năng code bị delay có thể xảy ra bạn ạ, nên cách hay nhất vẫn là dùng Identity :
+1 ít bữa train a React nhé =]]
Cái này theo ngu ý của mình thì cứ mỗi ngày bạn tạo 1 temp table với id auto_increment, cứ insert vào temp table này trước, sau đó update ngược id này lại table bạn cần.
Từ bài toán getmax nên đẻ ra bài toán concurrency bạn ạ Hiện tại thì cách hay nhất vãn là đẩy về database để xử lý hết như bạn Thương Nguyễn vừa nêu ở trên đó :
Thanks Bạn. Mình đã có check lại thì chỗ code reset đang có vấn đề và sẽ gặp lỗi delay như bạn nói khi có quá nhiều user cùng spam. Hiện tại dựa án đang sắp đến đoạn cuối nên kh cũng ko mong muốn đẻ thêm tool nên mình sẽ note lại phương án này để áp dụng sau này
if($qty > 0) { return true; } else { return true; } sao lại return true cả 2
Đây là bài toán concurrency chứ đâu phải GetMax như tiêu đề nhỉ. Nếu SeqNo chỉ là auto increment thì có thể sử dụng 1 biến static và 1 atomic operation như
Interlocked.Incrementcó được không bạn ? Như vậy thì sẽ đảm bảo ko bị race condition.Chưa làm C# bao giờ nên chỉ đoán vậy thôi