php sleep redis session_handler while

标签 php session redis sleep

我的应用程序在 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/

相关文章:

java - Servlet Session 行为和 Session.invalidate

node.js - NodeJS Express 删除同一用户的所有 session

用 C/C++ 编写的 PHP 词法和语法分析器

php - 响应引导 css php 错误

wordpress - Woocommerce 购物车 session 过期

redis - 比较redis命令: multi and mget

node.js - 在 Redis 中存储二维数组的最佳方式是什么?

redis - key 名称对于 eval 是事先不知道的

javascript - 使用 php 生成的表中的可选行

php - 使用 PHPUNIT 列出所有跳过的测试