私のアプリケーションがphp.iniのRedisに "session_handler"を設定しました。次のコードを書くと、Redis session storageはnilになります。私の初期のアイデアは、時間のかかるタスクを処理し、現在の進行中の値をセッション変数に書き込むメソッドです.Ajaxポーリングタスクの進行状況の別のメソッドです。php sleep redis session_handler while
session_start();
$i = 1;
while ($i <= 10)
{
$_SESSION['process_sync'] = $i;
$i++;
sleep(1);
}
$msg = "processing is over";
session_destroy();
print $msg;
睡眠時間が長すぎる場合、私は知らない、Redisの接続は閉じられますが、1秒は長い時間ではありません。または$ _SESSION = "fang xing"割り当て、RedisクライアントはすぐにRedisサーバーに注文を送信しませんでしたが、キューキャッシュ、つまりこの操作はブロックされず、スリープの実装に続いて、Redisクライアントは上記キューのデータは破棄されましたか?私は原則について話:)
PHPで眠ることは用途がありますが、これはその1つではありません。 PHPのスクリプトは、できるだけ早く実行が完了するように設計する必要があります。これを行うには、ポーリングやWebSocketが良い方法です。 – Xorifelse