研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

PHP: 1度だけ実行

2010-04-26 15:07:40 | Weblog
これを
<meta http-equiv="refresh" content="1">
すると, ソルバ実行中のstdout/stderrをリアルタイムっぽく表示してくれる.
<?php
session_start();
if ( isset($_SESSION['status']) && $_SESSION['status'] == 'done' ) {
  header("Location: result.php");
  exit;
}

if ( isset($_POST['job']) ) {
  /* execute once */
  $command = solve_command();
  $buffer = uniq_name();
  system($command . " > " . $buffer . " 2>&1 " . "&");
  $_SESSION['command'] = $command;
  $_SESSION['buffer']  = $buffer;
  $_SESSION['status']  = 'running';
} else {
  $command = $_SESSION['command'];
  $buffer  = $_SESSION['buffer'];
  $fp = fopen($buffer, "r");
  if ( !$fp ) {
    die("cannot open buffering file.");
  }
  echo "<pre>";
  fpassthru($fp);
  echo "</pre>";
  $_SESSION['status'] = 'done';
}
?>


最新の画像もっと見る

コメントを投稿