【发布时间】:2020-02-04 15:29:54
【问题描述】:
我有一个使用 Codeigniter 3.1.11 和 jQuery ajax 构建的聊天应用程序。我正在使用数据库会话驱动程序。本地主机没有问题,但是当我将它移动到实时服务器时,随着访问用户数量的增加,我的会话有很多问题。其中一个问题是它为单个用户创建了多个会话 ID(意味着当我在浏览器中打开一个页面时,它在 ci_sessions 表中至少创建了大约 4 到 6 个 ID,有时还不止这些)。有时我会丢失会话值(就像它在每个 ajax 调用中重置一样)。而且我在日志文件中也收到以下错误:
ERROR - 2020-02-04 13:41:30 --> Query error: Deadlock found when trying to get lock; try restarting transaction - Invalid query: UPDATE `ci_sessions` SET `timestamp` = 1580823690 WHERE `id` = 'e0b75ac252a680d3ec6ad1b8589f4836b89f8bf5'
我的实时服务器信息:
Apache 版本:2.4.41, PHP版本:7.3.13, MySQL 版本:10.3.18-MariaDB, 操作系统:linux
当我发布这个时,我的 ci_sessions 表包含 478 个唯一的 IP 地址和表内的 5105 个条目。请任何人帮助解决这个问题。
【问题讨论】:
标签: php session codeigniter-3 database-deadlocks php-7.3