一个统计在线用户的程序,其关键是使用命令模式修改用户的状态,这样做有两个好处:
1. 用户不用等待命令的执行结果。用户作为命令的发出者,无需知道命令的具体执行者和执行时间,也无需等待执行结果。这样可以实现异步调用。
2. 可以变并发执行为顺序执行,降低大量并发请求可能造成的死锁。
OnlineUserRecorder 中有两个命令队列 A,B。
A 队列只负责接收外界传递过来新的命令。
B 队列只负责处理执行命令。
A,B 这两个命令队列会在指定时刻交换!
最后,这个程序我只做了一次 2000 个请求的测试,还需要更充分的压力测试!……