Tôi có một ứng dụng web tại nơi làm việc tương tự như hệ thống làm việc bán vé. Một số người dùng nhập các vấn đề mới. Các công nhân khác chọn và giải quyết các vấn đề. Tất cả dữ liệu được duy trì trong máy chủ MS SQL 2005.Ngăn người dùng làm việc trên cùng hàng
Người dùng làm việc để giải quyết sự cố truy cập trang nơi họ có thể xem các sự cố mở. Bởi vì có tới hai mươi người có thể xem trang này cùng một lúc, một vấn đề tiềm năng mà tôi phải giải quyết là những gì xảy ra nếu ai đó chọn một vấn đề mà người khác đã chọn ngay sau khi tải trang của họ.
Để giải quyết vấn đề này, tôi đã làm hai việc. Đầu tiên, GridView hiển thị các vấn đề cần chọn sử dụng bộ đếm thời gian AJAX để cập nhật mỗi giây. Khi vấn đề đã được chọn, nó sẽ biến mất sau một giây. Trong trường hợp họ chọn một trong vòng thứ hai này, họ nhận được một thông báo yêu cầu họ chọn một cái khác.
Vấn đề là phần AJAX của việc này đang gửi quá nhiều cập nhật (đây là những gì tôi giả định) và nó ảnh hưởng đến hiệu suất của trang và cơ sở dữ liệu. Ngoài ra, các cập nhật không hoạt động mỗi giây. Tôi thấy bộ đếm thời gian không đáng tin cậy khi làm việc để kích hoạt các thủ tục được lưu trữ.
Phải có cách nào tốt hơn, nhưng dường như tôi không thể tìm thấy. Có ai có kinh nghiệm với một tình huống như thế này hoặc có đề xuất để giữ cho nhiều người dùng chọn cùng một bản ghi để duy trì? Tôi thực sự không muốn vô hiệu hóa phần AJAX hoàn toàn bởi vì tôi cảm thấy tin nhắn một mình sẽ làm cho ứng dụng bực bội khi sử dụng.
Xin cảm ơn,
+1 cho sự ngẫu nhiên, chính xác những gì tôi định đề xuất! –
Thứ tự ngẫu nhiên sẽ không hoạt động. Vé được ưu tiên theo cấp độ dịch vụ. –
Cơ sở của cấp độ dịch vụ hết hạn là gì? Đó có phải là quyết định dựa trên thời gian không? Tùy thuộc vào số lượng vấn đề của bạn, bạn có thể nhóm chúng vào phút gần nhất (hoặc mười lăm phút) và có nó là "đủ tốt". Dù sao, tôi biết rằng yêu cầu một ngoại lệ cho việc ưu tiên là một vấn đề chính trị, nhưng nếu bạn * có thể *, nó có thể chứng minh giá trị nó. –