2016-10-19 4 views
0

私のアプリケーションが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クライアントは上記キューのデータは破棄されましたか?私は原則について話:)

+0

PHPで眠ることは用途がありますが、これはその1つではありません。 PHPのスクリプトは、できるだけ早く実行が完了するように設計する必要があります。これを行うには、ポーリングやWebSocketが良い方法です。 – Xorifelse

答えて

0

セッションは、要求のシャットダウン後にファイルに書き込まれます。