
No.5ベストアンサー
- 回答日時:
今はレンタルサーバでも「1分おき」にcronで起動させられるところが増えていると思います。
なので、現象発生→ファイル作成もしくはデータベース更新などでフラグを立てる→cronでフラグが立ってからの経過時間が一定時間を超えたら所定の処理をする。などといった感じがいいんじゃないでしょうか。
よほど「正確に10分」が必要でもない限りは、じっと遅延させる(実行を待ち合わせる)のは無意味です。10分以上で11分未満でよければcronで1分ごとにチェックする方がいいです。
No.4
- 回答日時:
> ・ではトリガーについて、例えばPOST送信してから10分経過後とか、10分以内にみたいな条件分岐(?)は出来るでしょうか?
それが shimixさんが言っている sleepを使う方法です。
スリープ1分ぐらいでループさせればいいかと思います。
ただ、POST送信した側のブラウザが閉じている場合、PHP内部でどうなるかは分かりません。
↓俺が 昔 どっかから拾ってきて 使ってるタイムアウト防止コード。
set_time_limit(0);// 実行時間を制限しない
ob_end_clean();// 出力をバッファリングしない
print str_pad('',256);// IEのために256バイト空文字出力
んで、定期的に flush();
ただ、既に指摘されてる注意点があるので、オンライン上では使わないほうがいいかと思います。
無限ループ発生させると サーバー管理してるトコから 多分 怒られます。
いろいろ危険な要素をはらむので、素直に cronを使うことをお勧めします。
「回答」&「具体的なコード提示」ありがとうございます
>POST送信した側のブラウザが閉じている場合、PHP内部でどうなるかは分かりません
>ただ、既に指摘されてる注意点があるので、オンライン上では使わないほうがいいかと思います
・参考になりましたー
No.3
- 回答日時:
「PHPで~処理が発生」が「PHPが~自発的に処理を」という意味であれば、どちらも無理です。
一般的なPHPの使い方は、リクエストに対してレスポンスを返す形です。
なので、誰かがトリガーを引いてやらないと、何もアクションしません。
一般には、上記の「誰か」というのは「ブラウザ」で、それを使わず 定期自動処理を行いたいのであれば shimixさんが言っている cronなどにトリガーを引いてもらう事になります。
んー、ここまで書いて思ったけど、プログラムって何でも最初の一回は誰かがプログラムの実行を指示してやらないと動かないんだよねーとか思ったり。
この回答への補足
回答ありがとうございました。
>「PHPで~処理が発生」が「PHPが~自発的に処理を」という意味であれば、どちらも無理です。
>一般的なPHPの使い方は、リクエストに対してレスポンスを返す形です。
>なので、誰かがトリガーを引いてやらないと、何もアクションしません
・よく分かりました
・ではトリガーについて、例えばPOST送信してから10分経過後とか、10分以内にみたいな条件分岐(?)は出来るでしょうか?
No.1
- 回答日時:
回答1
sleepで実行を待ち合わせることはできます。
http://jp1.php.net/manual/ja/function.sleep.php
ただし、ブラウザからアクセスされたスクリプトで一定時間以上何も返さない状態を続けると、ブラウザがタイムアウトと判断してしまうので細かく区切って「何か」を出力しながら遅延させるなどの工夫は必要ですし、レンタルサーバなどでは実行時間の制限にひっかかるかもしれません(sleepを実行時間に含まないケースが多いとは思いますが、どういう運用かは確認しないとわかりません)。
回答2
「phpで」というのは無理です。システム側で行います(Unixならcron、WinOSならタスクで)。
回答ありがとうございました。
>sleepで実行を待ち合わせることはできます。
>ただし、ブラウザからアクセスされたスクリプトで一定時間以上何も返さない状態を続けると、ブラウザがタイムアウトと判断してしまうので細かく区切って「何か」を出力しながら遅延させるなどの工夫は必要です
・参考になりましたー
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpの問い合わせフォームを作っ...
-
フォームで戻った際に入力済み...
-
PHP8でWarning:Undefined varia...
-
BASIC認証のフォームをデザイン...
-
入力フォームの空白や改行を制...
-
PHP8を使うと、大量のWarningが...
-
ファイルアップロードに関して...
-
Q&Aサイトを作成していてURLの...
-
PHPのエラーの解消法について教...
-
composerをインストールしたい...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sleepの負荷
-
呼び出し元のURLを知りたいのです
-
ASP.NET(VB)VBソースからJavas...
-
ブラウザを閉じた瞬間にログアウト
-
PHPでフォームの自動入力できま...
-
GDとImageMagick どっちがおす...
-
php ob_flushが全く動作しない
-
このプログラムの認証ウィンド...
-
掲示板の作り方
-
イベント処理について
-
自作PHPがどれ程サーバの負担に...
-
読み込み中に「Now Loading」を...
-
スクリプト言語でおすすめのもの
-
PHPを書籍で勉強しているのですが
-
PHP内でJavaScriptの処理は可能?
-
PHPでオンライン将棋ゲーム
-
mkdirでフォルダ名“予定表示”を...
-
PHPを用いてPOSTし、リダイレク...
-
jQueryのAjaxで通信の途中結果...
-
10秒毎に同じプログラムを繰り...
おすすめ情報