我正在更新一个高流量网站上的现有访客跟踪脚本。我注意到不是脚本本身存在问题,而是存在多个请求时会发生什么。假设用户双击指向我网站的某些链接,最终会同时有效地发出两个请求。请求 1 得到处理并创建会话。然后,该脚本继续将访问者记录添加到数据库中。同时,正在处理请求 2。它检查会话是否已设置,因此它与请求 1 执行相同的操作。现在,我们在数据库的访问者表中有 2 个不同的会话和 2 条记录,而实际上应该有一个。当前会话的会话 ID 最终来自最后完成的请求。
所以,我想做的是防止这种情况发生。即使有来自同一个访问者的 100 个多个并发请求,我希望只创建一个会话 ID,并且最重要的是,只有一条记录(不是 100 条记录)插入到数据库的访问者表中。这涉及在几毫秒内确定一个请求已经发出。有任何想法吗?