我正在编写http会话管理器(基于gen_server).该服务器从内存存储中创建和删除会话.我需要在超时时删除过期的会话.我有两个解决方案:
第一个解决方案在未处理所有会话时锁定服务器(锁定问题).第二个解决方案需要每个会话的进程(内存问题).
问题是哪种解决方案是正确的?
谢谢!
使用timer:send_after,timer:exit_after或timer:kill_after.timer模块ets用于存储计时器,gen_server整个VM 只有一个.在每个会话记录中存储计时器参考,以便重新启动计时器.这是简单而干净的解决方案.