09/10/2018, 23:17
Mời mọi người thảo luận về Giới hạn truy cập trong website
Vấn đề như thế này nhé:
Một site do băng thông có hạn, hoặc một số lý do nào đó mà tại một thời điểm chỉ có thể phục vụ 1000 người. Nếu người thứ 1001 vào thì nó chuyển đến trang đợi (nào đó) và hiện thông báo.
Mình làm thế này: Tạo một bảng tạm theo kiểu như thống kê số người truy cập bằng session. Khi một người nào đó vào site ta sẽ khởi tạo session và lưu và bảng này, thực hiện thao tác xóa các session cũ(có thể thiết lập là 5phút ...v..). Đồng thời đếm xem tổng số session (count *) là bao nhiêu. Nếu lớn hơn 1000 thì thực hiện thao tác trên.
Tuy nhiên, cách này có BUG:
- Khi người truy cập tắt trình duyệt và vào lại trong thời gian nhỏ hơn thời gian quy định (5p) thì script sẽ không chuẩn.
- Quá nhiều thao tác ghi và đọc trên database.
Ai có giải pháp nào không? Hoặc có thể bổ xung cách mình đưa ra?
Một site do băng thông có hạn, hoặc một số lý do nào đó mà tại một thời điểm chỉ có thể phục vụ 1000 người. Nếu người thứ 1001 vào thì nó chuyển đến trang đợi (nào đó) và hiện thông báo.
Mình làm thế này: Tạo một bảng tạm theo kiểu như thống kê số người truy cập bằng session. Khi một người nào đó vào site ta sẽ khởi tạo session và lưu và bảng này, thực hiện thao tác xóa các session cũ(có thể thiết lập là 5phút ...v..). Đồng thời đếm xem tổng số session (count *) là bao nhiêu. Nếu lớn hơn 1000 thì thực hiện thao tác trên.
Tuy nhiên, cách này có BUG:
- Khi người truy cập tắt trình duyệt và vào lại trong thời gian nhỏ hơn thời gian quy định (5p) thì script sẽ không chuẩn.
- Quá nhiều thao tác ghi và đọc trên database.
Ai có giải pháp nào không? Hoặc có thể bổ xung cách mình đưa ra?
Bài liên quan
Còn nếu dùng database, theo em nghĩ thì nên dùng thêm cookie để nhận diện khi người dùng mở nhiều trang.
Cách bác lkn nói không khả thi đâu, vì làm sao bác xác định được một client bị quá time out?