我的应用程序在 php.ini 中将“session_handler”设置为 Redis,当我编写以下代码时,Redis session 存储为零。我最初的想法是一种处理耗时任务并将当前进度值写入 session 变量的方法,另一种方法是通过ajax轮询任务进度。
session_start();
$i = 1;
while ($i <= 10)
{
$_SESSION['process_sync'] = $i;
$i++;
sleep(1);
}
$msg = "processing is over";
session_destroy();
print $msg;
不知道是不是sleep时间太长,Redis连接会被关闭,不过1秒应该不会太长。或者$_SESSION="fang xing"赋值,redis client并没有立即向redis server发送命令,而是在队列缓存中,也就是说这个操作没有被阻塞,后面执行sleep,redis client会把上面的说队列数据丢弃? (我假设)
谁能给我讲讲原理:)
最佳答案
我认为 session 是客户端无法直接访问的东西。我想通过 Ajax 传播进度会是一个更好的主意。
How to make progress bar with jQuery and PHP while waiting server process?
关于php sleep redis session_handler while,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40121078/