• 締切済み

計算を要するphpをバックグランド等で動かす方法

皆様のお知恵を拝借したく、投稿しています。 現在簡単なウェブを、phpで作成しています。 そのウェブでは、複数の写真をアップし、画像解析することを試みています。 必要なプログラムはすべてUbuntu(linux)上で動かしています。 写真をウェブ上にアップした後、いくつかユーザーが設定する条件をウェブ上で整えたうえで、 「送信ボタン」を押すことで、画像解析プログラム(仮にImage.phpとしておきます)が起動するようにしています。 ここまでは何も問題なく動きますが、Image.phpで行われる計算時間が長いため、Chromなどのweb browserではImage.phpからの応答反応がないとみなされ、途中でウェブへの通信が遮断されため、結果としてImage.phpの計算が途中で止まってしまいます。 一番簡単な方法として考えたことは、 Image.phpをバックグランドで起動させることだと思いましたが、 「&」や「nohup」だけでは、上記で説明した問題が発生しています。 皆様のお知恵を拝借したいことは、 どのようにしたら、この問題を回避することができるのかを伺いたいです。 バックグランドを使用しての別の方法でも構いませんし、まったく別の方法でも構いません。 ご教授お願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

timeoutが頻発するようではサーバーの負荷も大きいでしょうから ajaxも危険ですね ユーザーが無意識な分バックグラウンド処理がたまりすぎて オーバーフローするかも・・・ 考え方は3つ 第一にそんな作業はWEBアプリ上ですべきではない 第二にアルゴから考えなおして高速化を図るべき 第三にどうしてもというなら作業を予約しておく仕組みをつくり 結果をデータベースに登録、ユーザーはアウトプットをDBから取り出すようにする という感じでしょうか

  • ahoo_ok
  • ベストアンサー率31% (30/95)
回答No.2

ajaxで動かせばいいだけでしょ。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

具体的に、どんなコードでimage.phpを実行しているのですか? また、バックグラウンドで実行はじめた後で、呼び出した側のプログラムを終了→ブラウザ側では通信終了 にしてますか?

関連するQ&A