- 1 名前:nobodyさん mailto:sage [2012/01/02(月) 02:03:25.50 ID:???]
- 質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り 次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はID出して書き込みやがれ 113 kohada.2ch.net/test/read.cgi/php/1322564127/ ◆質問用テンプレ 【OS名】CentOS 【PHPのバージョン】5.3 【連携ソフトウェア】MySQL ImageMagick 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。 【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
- 630 名前:nobodyさん mailto:sage [2012/01/11(水) 15:00:30.88 ID:???]
-
foreach ( $list ... ) { if ( ($pid = pcntl_fork()) === 0 ) { 子でやりたいこと exit(0);//終わる } else if ($pid == -1) die("x"); } //親での処理(終わるの待つとか)
- 631 名前:nobodyさん mailto:sage [2012/01/11(水) 15:07:26.35 ID:???]
- >>627
並列処理したい処理をもうちっと具体的にくれ
- 632 名前:nobodyさん [2012/01/11(水) 15:25:25.54 ID:VbJoExbW]
- 皆さん、返答ありがとうございます
自分のやりたい事とは少し違いますが、説明が簡単な例としては、Googleのクローラなんかがあると思います データをどういう手法か分かりませんが、初期のものでも1サーバに300ものクローラを使っていたとの事です クローラは動き回っているので考え方が違うかもしれませんが、例えば自社や関連会社のデータなど固定されたターゲットの場合はcronなどで定期的に訪問出来るでしょうが、 それらの設定値をいちいちファイルに記述するのも大変なので、それぞれの場所にてデータを取得するためのxPathなど設定値リストを読み込んで、 スクリプトにて一気に並行処理にて自動的に行う、という事をやりたいと考えております ただ、アクセスし続けるのも相手側に付加がかかるので、各スクリプトの訪問間隔を大きい相手は5分、小さい相手は1時間などにしたいと考えております また、それらのデータを正常に取得したら、その瞬間に今度はそのデータを解析・整形するようなスクリプトを起動させたいと考えております 以上の点にて宜しくお願いいたします
- 633 名前:nobodyさん mailto:sage [2012/01/11(水) 16:03:46.74 ID:???]
- いまいち何をやりたいかわからんが
取得先が大量にあって直列処理だと時間がかかりすぎるしそれぞれ取得設定を書くのもめんどいから 並列にしたいってことでおk? ならcURLのマルチ使って、設定値をdbなどから引っ張ってきてから 回しながらcallbackなんかをうまく設定して一気にゴー、で行けるんじゃないか。 やりたいことと違っていたならすまん。 参照:ttp://techblog.ecstudio.jp/tech-tips/php-multi.html
- 634 名前:nobodyさん mailto:sage [2012/01/11(水) 16:19:22.57 ID:???]
- >>632
Webのクローラーはデータ取得に暇がかかるのが明白だから並列処理するのが当たり前のアプローチ
- 635 名前:nobodyさん mailto:sage [2012/01/11(水) 16:46:00.24 ID:???]
- あえてクローラーをPHPで作ることもないだろ。
PHPは標準で並列処理できない仕様だ。 並列処理できる言語、並列処理できるソフトを使って保存してから PHPでそこにアクセスしたら良い。
- 636 名前:nobodyさん mailto:sage [2012/01/11(水) 16:58:01.39 ID:???]
- しかしcurlだけは標準でダウンロードが完了してなくても処理が帰ってくるから擬似的には並列処理できるな。
通信だけは並列にできるいうことだが。クローラーはパフォーマンスを落とさずに、並列処理可能な言語・ツールに並べる可能性はある。
- 637 名前:nobodyさん mailto:sage [2012/01/11(水) 17:09:13.29 ID:???]
- ここで適切なアドバイスしても、馬鹿には無理だろ。
- 638 名前:nobodyさん mailto:sage [2012/01/11(水) 17:40:57.15 ID:???]
- 返事なくなっちゃったね。
- 639 名前:nobodyさん mailto:sage [2012/01/11(水) 17:43:06.65 ID:???]
- engawa.2ch.net/test/read.cgi/linux/1324631185/427
のコンパイルは結局うまくいったのか?
- 640 名前:nobodyさん mailto:sage [2012/01/11(水) 18:11:13.28 ID:???]
- >>630 じゃだめなん?
- 641 名前:nobodyさん mailto:sage [2012/01/11(水) 18:17:50.79 ID:???]
- よくわからないから無視したんだろw
- 642 名前:nobodyさん mailto:sage [2012/01/11(水) 19:03:57.60 ID:???]
- 質問してしっぱなしかよ・・・
- 643 名前:nobodyさん mailto:sage [2012/01/11(水) 19:05:55.41 ID:???]
- いつも質問答えてる側の奴らから難易度高めの問題がほしい
- 644 名前:超難問! mailto:sage [2012/01/11(水) 19:10:37.65 ID:???]
- >>643が彼女をつくるにはどうしたらいいでしょうか?
- 645 名前:nobodyさん mailto:sage [2012/01/11(水) 19:31:49.93 ID:???]
- 彼女(笑)
- 646 名前:nobodyさん mailto:sage [2012/01/11(水) 20:04:08.13 ID:???]
- $list = array("清美", "里子", "友恵", "友里", "とめ", "愛子", "雅子", ...... );
for ($i = 0; >>643の心が折れるまで; $i++) { $result[] = kokuhaku($list[$i]); } if ($result == NULL){ die("まだ2次元がある"); }
- 647 名前:nobodyさん [2012/01/11(水) 20:48:30.27 ID:tHZDD+V0]
- 質問です
hoge.txtというテキストファイルがありまして 100バイトの文字列\n 100バイトの文字列\n 100バイトの文字列\n : : : と500行ある500KBののテキストファイルがあるとします このファイルから 「499行目と500行目」 か 「1行目と2行目」 だけを取り出すとき、サーバーの負荷は 両方1〜500行の文字を取り出すときとほぼ同じ負荷でしょうか?
- 648 名前:nobodyさん mailto:sage [2012/01/11(水) 20:50:49.28 ID:???]
- >>643
501 :nobodyさん:2012/01/08(日) 19:46:27.97 ID:??? >>489 abstractとinterfaceの具体的な使い分けはどうしてますか? 実装が書きたかったらabstractっていうのはあまりにもアレなので 哲学とまでは言いませんが、確固たる理由をつけて使い分けたいんです
- 649 名前:nobodyさん mailto:sage [2012/01/11(水) 20:52:56.46 ID:???]
- 読み方に依るだろ。
読み込む位置が確定していたら、シークするだけの違いしかなく負荷に大差ないが。 改行位置の判定からやっていたら後ろの方が手間掛かる。
- 650 名前:nobodyさん mailto:sage [2012/01/11(水) 21:08:42.58 ID:???]
- 一般的には常識とされている、
真実は一つだけ 怒りは自然な感情 戦争・テロは無くならない 死刑には殺人の抑止力がある 虐められる側にも虐めの原因がある 自己チューな人間ほど自己愛が強い などの間違いを解説中 感情自己責任論
- 651 名前:nobodyさん [2012/01/11(水) 21:13:42.02 ID:tHZDD+V0]
- >>649
という事はどんなやり方でも最低でも500KBかかってしまうという事でしょうか? 200バイト(2行分)程度だけで住む方法ないかなーと思ってたのですが
- 652 名前:nobodyさん mailto:sage [2012/01/11(水) 21:34:41.86 ID:???]
- 固定長なら200バイトだけで済むだろ。
- 653 名前:nobodyさん mailto:sage [2012/01/11(水) 22:26:31.01 ID:???]
- >>649はちょっと読み間違いをしているね。
> 「499行目と500行目」 > 「1行目と2行目」 この二つの負荷には大差がないといっているんだろう。 本来の質問であるところの、 > 1〜500行の文字を取り出すとき との負荷には大きな差があるよ。 固定長じゃない場合は、最後の2行を得るのが少し面倒だけど。
- 654 名前:nobodyさん mailto:sage [2012/01/11(水) 22:33:40.13 ID:???]
- 500行のロードと、2行のみロードでは負荷に違いがある。
- 655 名前:nobodyさん mailto:sage [2012/01/11(水) 22:33:46.01 ID:???]
- 実験してみればいいじゃん
- 656 名前:nobodyさん mailto:sage [2012/01/11(水) 22:45:01.77 ID:???]
- 500Kくらいたいした事で無い。
fileで全行読み込んでも良いよ。 そこがボトルネックになってから改良したら良い。
- 657 名前:nobodyさん mailto:sage [2012/01/11(水) 22:47:30.54 ID:???]
- 全ての箇所で低リソースを目指していたら手間が掛かって進まない。
一応動くやつを作ってから速度測定して、 全体の中で時間掛かっているところに手を加えれば良い。
- 658 名前:nobodyさん [2012/01/11(水) 23:02:44.07 ID:tHZDD+V0]
- ごめんなさい、1〜500行の文字を取り出すと比べて
「499行目と500行目」「1行目と2行目」この二つは差があるのでしょうか?という質問でした 説明不十分で申し訳ないです やっぱりテキストファイルを固定長形式にするしか無いですかね? この場合 100バイトの文字列 2Kバイトの文字列 4バイトの文字列 : となった場合、全部2KBになって500行あったら1Mになってしまうので避けてたのですが
- 659 名前:nobodyさん mailto:sage [2012/01/11(水) 23:06:53.90 ID:???]
- 理解不可能ですが。
全て(1〜500行)のロードと2行のみでは負荷は違う。 可変長だったらindexをファイルの後方か先頭に配置して必要なところを読めば速いです。
- 660 名前:nobodyさん mailto:sage [2012/01/11(水) 23:16:37.71 ID:???]
- ファイルサイズがでかくて全読込をさけたいなら、データベースにいれとけよ。
そしたらメモリ管理など気にしなくて済むしキャッシュなども自動で使ってくれる
- 661 名前:nobodyさん [2012/01/11(水) 23:39:54.74 ID:GX2tXR1t]
- PHPとAsp.netってどう違うんですか?
- 662 名前:nobodyさん [2012/01/11(水) 23:50:01.97 ID:VbJoExbW]
- >>633-642
すみません、今まで色々試しにやってて返事が遅くなりました ja.wikipedia.org/wiki/Forkを参照に #!/usr/local/bin/php -q <?php $pid = pcntl_fork(); if ($pid == 0) { $j; for ($j=0; $j < 10; $j++) { printf("child: %d\n", $j); sleep(1); } } else if($pid > 0) { $i; for ($i=0; $i < 10; $i++) { printf("parent: %d\n", $i); sleep(1); } print "wait begin.\n"; pcntl_wait($status); print "wait end.\n"; } else { die('fork できません'); }としました
- 663 名前:nobodyさん [2012/01/11(水) 23:50:43.62 ID:VbJoExbW]
- ただ、結果が
child: 0 child: 1 child: 2 child: 3 child: 4 child: 5 child: 6 child: 7 child: 8 child: 9 parent: 0 parent: 1 parent: 2 parent: 3 parent: 4 parent: 5 parent: 6 parent: 7 parent: 8 parent: 9 wait begin. wait end. のようになってparentがwikipediaのようにchildの間に入っておりません "出力の順序はカーネルが決定する"とは書かれていますが、PHPではこのようなものなのでしょうか? 学習不足で申し訳ないです
- 664 名前:nobodyさん mailto:sage [2012/01/12(木) 01:50:16.25 ID:???]
- >>662
なぜPHPを使っているのですか?
- 665 名前:nobodyさん [2012/01/12(木) 02:58:10.26 ID:KRgm5yh1]
- やっぱりphpでは並列無理ぽ。
- 666 名前:nobodyさん mailto:sage [2012/01/12(木) 03:08:54.02 ID:???]
- ニートおっさんには無理
- 667 名前:nobodyさん mailto:sage [2012/01/12(木) 03:25:30.76 ID:???]
- >>662
そのコードでできたよ。 child: 0 parent: 0 child: 1 parent: 1 child: 2 parent: 2 (略) child: 8 parent: 8 child: 9 parent: 9 wait begin. wait end.
- 668 名前:nobodyさん mailto:sage [2012/01/12(木) 03:39:54.92 ID:???]
- >>667
できてない。
- 669 名前:nobodyさん mailto:sage [2012/01/12(木) 03:43:15.46 ID:???]
- 並列と分散はPHPの泣きどころ。
- 670 名前:nobodyさん mailto:sage [2012/01/12(木) 03:52:56.74 ID:???]
- かろうじて並列できても実用性は全くないことに気づけよ
- 671 名前:nobodyさん mailto:sage [2012/01/12(木) 04:51:39.62 ID:???]
- 同じやつが同じ話題を繰り返してるんだな
- 672 名前:nobodyさん mailto:sage [2012/01/12(木) 05:35:36.73 ID:???]
- >>668
どういうこと?
- 673 名前:nobodyさん mailto:sage [2012/01/12(木) 10:36:29.57 ID:???]
- >>663
これって実行には何秒かかったんだろ。
- 674 名前:nobodyさん mailto:sage [2012/01/12(木) 12:24:55.33 ID:???]
- >>664 >>665 >>668 >>669 >>670 は並列処理を理解できてない馬鹿。
- 675 名前:nobodyさん mailto:sage [2012/01/12(木) 12:27:31.97 ID:???]
- >>667
>>663 実行環境(カーネル)の違いでプロセスの優先度が変わるのかな?
- 676 名前:nobodyさん mailto:sage [2012/01/12(木) 13:02:25.38 ID:???]
- PHPにはpcntl_forkというプロセスをフォーク(複製)することが
できる関数がありますが、これはPHPをCGIモードで 動かしている場合にのみ有効です。 通常はPHPをApacheモジュールとして動作させていることが 多いので、これが使えないケースが多々あります。 techblog.ecstudio.jp/tech-tips/php-multi.html
- 677 名前:nobodyさん mailto:sage [2012/01/12(木) 13:15:01.92 ID:???]
- っていうか、何でPHPで作ることにこだわってんだ?
Perlで良いじゃん。
- 678 名前:nobodyさん mailto:sage [2012/01/12(木) 13:19:01.14 ID:???]
- >>676
pcntl_fork関数は存在するし、forkも成功したように見えるけど、並列処理されないなんて結果になるということですか
- 679 名前:nobodyさん mailto:sage [2012/01/12(木) 14:01:06.08 ID:???]
- ちなみに俺も>>662やってみた
俺は並列処理の事なんか分かっていないので、このやり方で合っているか分からないけれど <?phpの後に、$time = time(); 最終行に、echo 'time:' . (time() - $time) . 'sec' . PHP_EOL;を付けてみた 2chの改行規制で出力形式変えるけど結果は child: 0 child: 1 child: 2 child: 3 child: 4 child: 5 child: 6 child: 7 child: 8 child: 9 time:10sec parent: 0 parent: 1 parent: 2 parent: 3 parent: 4 parent: 5 parent: 6 parent: 7 parent: 8 parent: 9 wait begin. wait end. time:10sec となった >>676 www.php.net/manual/ja/pcntl.installation.php にはCLI版も可能って書いてるんじゃないの? >>675 ちなみに自分はcentOSです
- 680 名前:nobodyさん [2012/01/12(木) 14:01:29.80 ID:QAUYYhrI]
- phpとmysqlでカウンターが作りたいのですが
書き込むときの排他制御はどのようにやるのでしょうか?
- 681 名前:nobodyさん mailto:sage [2012/01/12(木) 14:01:52.50 ID:???]
- >>676
CLIでも使えるよね?
- 682 名前:nobodyさん mailto:sage [2012/01/12(木) 14:02:25.17 ID:???]
- もういい加減ニートのおっさんは飽きた
- 683 名前:679 mailto:sage [2012/01/12(木) 14:02:52.80 ID:???]
- 書き忘れたけど、この出力結果みると並列処理ってされてない・・・んだよね?
- 684 名前:nobodyさん mailto:sage [2012/01/12(木) 14:10:41.80 ID:???]
- 基本的にはマルチスレッドはサポートされてないだろ。
レンタルサーバーとかでは。 自宅で一人で使う目的だったらマルチスレッドをONにしてコンパイルすればいい。 しかしソースコードに汎用性が無くなる。 Curlをつかっとけ。5.3か5.2から標準で並列に使える。
- 685 名前:nobodyさん mailto:sage [2012/01/12(木) 14:15:13.44 ID:???]
- forkだからマルチスレッドの話ではないでしょ。
- 686 名前:nobodyさん mailto:sage [2012/01/12(木) 14:16:07.48 ID:???]
- PHPがサポートするプロセス制御機能は、デフォルトでは有効となってい ません。
プロセス制御機能を有効にするには、 configure のオプションに --enable-pcntl を付け、 CGI 版あるいは CLI 版の PHP をコンパイルする必要があります。 注意: 現在、このモジュールは非 Unix 環境(Windows)では動作しません。 www.php.net/manual/ja/pcntl.installation.php
- 687 名前:nobodyさん mailto:sage [2012/01/12(木) 14:18:28.39 ID:???]
- >>686
何が言いたいの。
- 688 名前:679 mailto:sage [2012/01/12(木) 14:27:53.78 ID:???]
- >>682には悪いけど、俺にはせっかくの機会だから色々試してみた
>>662を if ($pid == 0) { system('php forkc1.php'); system('php forkc2.php'); } に変えて、それぞれに <?php $time = time(); $i; for ($i=0; $i < 10; $i++) { printf("child1: %d\n", $i); sleep(1); } echo 'c1-time:' . (time() - $time) . 'sec' . PHP_EOL; のように書いた
- 689 名前:nobodyさん mailto:sage [2012/01/12(木) 14:28:15.56 ID:???]
- 実行結果は
c1: 0 c1: 1 c1: 2 c1: 3 c1: 4 c1: 5 c1: 6 c1: 7 c1: 8 c1: 9 c1-time:10sec c2: 0 c2: 1 c2: 2 c2: 3 c2: 4 c2: 5 c2: 6 c2: 7 c2: 8 c2: 9 c2-time:10sec p-time:20sec parent: 0 parent: 1 parent: 2 parent: 3 parent: 4 parent: 5 parent: 6 parent: 7 parent: 8 parent: 9 wait begin. wait end. p-time:20sec となった で、実際の時計を見ていたら、20秒後に表示された system('php forkc3.php'); も加えたら実際の時計では30秒後に表示された これってどういうこと? 並列処理されていないってことだよね?
- 690 名前:nobodyさん mailto:sage [2012/01/12(木) 14:30:51.41 ID:???]
- なんでそんなトンチンカンなことが平気で言えるのか
system('php forkc1.php'); system('php forkc2.php'); この時点で気付けよ
- 691 名前:nobodyさん mailto:sage [2012/01/12(木) 14:36:08.80 ID:???]
- ん?
30秒かかるのは当たり前か・・・笑 >>679は10秒で済んでるから親プロセスと子プロセスはちゃんと並列処理されてるってことだね 自分の>>688の書き方が悪いだけか この流れの話は、親プロセスから子プロセスを複数作成し、それを同時に実行 つまり3つの子プロセスがあれば4つとも10秒後に終わらせるということだよね? となると実装法が思いつかないけど、pcntl_fork()っていうのを3回呼び出せばいいってことじゃないかな? 分からん
- 692 名前:nobodyさん mailto:sage [2012/01/12(木) 14:37:16.69 ID:???]
- >>690
ごめん、投稿した後すぐに気がついた(苦笑
- 693 名前:nobodyさん mailto:sage [2012/01/12(木) 14:54:03.86 ID:???]
- >>686
>>678
- 694 名前:nobodyさん mailto:sage [2012/01/12(木) 14:56:29.29 ID:???]
- >>691
system('php forkc1.php &'); と、バックグラウンドプロセスにすればよろしい。 プロセスの終了待ち処理を入れる必要があるけど。
- 695 名前:nobodyさん mailto:sage [2012/01/12(木) 15:05:23.27 ID:???]
- >>694
なるほど 実はまだ挑戦してて(笑 一度やり始めたら意地でもとなってしまってw $pid[$i] = pcntl_fork();等と複数回呼び出して、 その後system()を呼び出すとかやってみたのですが30秒かかったりで バックグラウンドプロセスという発想はなかったです 今から外に出ないといけないんですが、最後にちょっと試してみます
- 696 名前:nobodyさん mailto:sage [2012/01/12(木) 15:10:13.69 ID:???]
- >>694
アハハ、今>>688のコードにて if ($pid == 0) { system('php forkc1.php &'); system('php forkc2.php &'); system('php forkc3.php &'); } としましたが 今度は31秒かかってしまいましたw どこがおかしいのか分かりませんが、また帰ってからやってみます
- 697 名前:nobodyさん mailto:sage [2012/01/12(木) 15:17:35.81 ID:???]
- 時間のムダ。
- 698 名前:nobodyさん mailto:sage [2012/01/12(木) 15:23:17.54 ID:???]
- pcntl_fork()の話してんのになんでsystem()になってんの。
- 699 名前:nobodyさん mailto:sage [2012/01/12(木) 15:29:16.52 ID:???]
- アホですから
- 700 名前:nobodyさん mailto:sage [2012/01/12(木) 15:30:19.76 ID:???]
- >>696
アハハ、なんで標準出力捨てないの
- 701 名前:nobodyさん mailto:sage [2012/01/12(木) 15:31:28.10 ID:???]
- >>698
たぶん>>686のWindowsでは動かないというのをみたからじゃないのかな。 ほんとに動かないか知らないけど
- 702 名前:nobodyさん [2012/01/12(木) 15:50:09.93 ID:at33kcZ9]
- ちょっとしたポータルサイトや、管理機能付きサイトを作るとき、
CMSを使うか、フレームワーク使うかどっちがよろしいですかね・・・。
- 703 名前:nobodyさん mailto:sage [2012/01/12(木) 16:55:38.26 ID:???]
- >>702
その文章だけを読んで「ちょっとしたポータルサイト」がどれほどの規模のものを指しているのか わかる人は少ないだろう
- 704 名前:nobodyさん mailto:sage [2012/01/12(木) 17:15:27.45 ID:???]
- ヤフーくらい
- 705 名前:nobodyさん mailto:sage [2012/01/12(木) 17:19:26.21 ID:???]
- >>702
自分がやりやすい方でいいんじゃないすか。
- 706 名前:nobodyさん mailto:sage [2012/01/12(木) 17:30:43.50 ID:???]
- どっちも使えるようになるまで時間かかる
どっちも詳しくない私は 使わない方がやりやすい。
- 707 名前:nobodyさん mailto:sage [2012/01/12(木) 17:42:30.00 ID:???]
- PHPが出来るならWPはすぐに使えると思うが
- 708 名前:nobodyさん mailto:sage [2012/01/12(木) 20:44:35.20 ID:???]
- そもそもなんでこのスレで質問するのか
- 709 名前:nobodyさん mailto:sage [2012/01/12(木) 20:59:53.31 ID:???]
- 確かに、なんでここで聞いたの?
- 710 名前:nobodyさん mailto:sage [2012/01/12(木) 21:35:47.31 ID:???]
- 質問するスレだろ何が駄目なんだ
- 711 名前:nobodyさん mailto:sage [2012/01/12(木) 21:41:21.83 ID:???]
- >>710
>>1
- 712 名前:nobodyさん mailto:sage [2012/01/12(木) 21:42:14.04 ID:???]
- CMSを使うかフレームワークを使うかっていう質問はここじゃねぇと思うが
- 713 名前:nobodyさん mailto:sage [2012/01/12(木) 21:43:04.05 ID:???]
- 質問するスレすらわからん馬鹿はポータルサイトなんか作れんよ
- 714 名前:nobodyさん mailto:sage [2012/01/12(木) 22:20:03.29 ID:???]
- PHPのフレームワークスレって確かあったよな
- 715 名前:679 mailto:sage [2012/01/12(木) 22:21:38.91 ID:???]
- ギブ・・・
俺には自力では無理でした >>699の言うようにアホですな プログラム板にでも行ってきます
- 716 名前:nobodyさん mailto:sage [2012/01/12(木) 22:29:06.06 ID:???]
- >>697
なんで人の質問を俺がやってるのか分からんが、それが出来たら楽に処理できるような事も 出てくるかなと思ってやってみたんだけど >>698 いや、だって引数とって一気に別ファイルのスクリプト実行するんでしょ? system()じゃないの? >>700 ごめんどういうこと? $php fork-test.php > /dev/null とかってこと? 同時に実行されていくということは c1:0 c2:0 c1:1 c2:1 のように出てくるのかなとか思ってたんだけど違うん?
- 717 名前:nobodyさん mailto:sage [2012/01/12(木) 22:31:19.98 ID:???]
- >>716
バックグラウンドプロセスの標準出力を捨てろってこと。
- 718 名前:nobodyさん mailto:sage [2012/01/12(木) 22:36:09.30 ID:???]
- >>716
一気に別ファイルのスクリプトを実行するのにforkではダメだと思った理由を書いてみ
- 719 名前:nobodyさん mailto:sage [2012/01/12(木) 22:48:45.79 ID:???]
- >>718
ごめん、分かりませんw forkって子プロセスを作成->親プロセスは待機->子プロセス終了->親プロセス実行 って動作だよね? で、子プロセスは親プロセスのコピーであると だから元々親プロセスの時点で実行されていたり、格納していた変数の値とかは子プロセスも保持していると ま、自分の分からない所は子プロセスを複数作成するにはPHPだとpcntl_fork()をその回数実行すると ただ、自分がやったのでは $pid1=pcntl_fork(); $pid2=pcntl_fork(); それぞれにて上記のようなfor()を使うと一緒に実行されるんじゃなくて、直列(逐次)処理になってて「う〜ん」と 別ファイルのスクリプトを実行するのにPCNTL関数内にそんな感じの関数もないし、 データベースなどから設定値を取得してきて、そこから得てきたそれぞれの設定値を渡すとなると system()かなと考えて・・・ 例えばどんな風に書けばいいんですかね?
- 720 名前:nobodyさん mailto:sage [2012/01/12(木) 22:50:08.98 ID:???]
- >>719
大前提がおかしい >>667
- 721 名前:nobodyさん mailto:sage [2012/01/12(木) 22:54:57.73 ID:???]
- >>719
ちなみに>>662におけるsleepをタイムスライス放棄のみのコードに変更した場合の出力結果例はこんな感じ。 child1: 0 parent: 0 parent: 1 child1: 1 parent: 2 parent: 3 child1: 2 parent: 4 parent: 5 child1: 3 parent: 6 child1: 4 parent: 7 child1: 5 parent: 8 child1: 6 parent: 9 wait begin. child1: 7 child1: 8 child1: 9 wait end. あとID出せよカス
- 722 名前:nobodyさん [2012/01/12(木) 23:11:37.74 ID:QxDXzJq0]
- タイムスライス放棄のみのコードって何だと思いググってました(苦笑
sleep(-1)ってのが出てきましたがこれの事ですかね? 俺は>>667のようにはならないんですが、OSは何ですか? つまり、>>662のようなfor()文使った場合は、子プロセス->親プロセス->子プロセス->親プロセス-> という挙動をすると言うことですか? しかし俺全然だめだなぁ・・・
- 723 名前:nobodyさん mailto:sage [2012/01/12(木) 23:45:38.66 ID:???]
- phpファイルで、以下のようにjava scriptのファイルを読み込んでいるのですが、
<script type="text/javascript" src="test.js"> test.jsを変更しても反映されないことがあります。 ブラウザがキャッシュか何かをしているのでしょうか? 回避策とかありましたらご教授お願いします。
- 724 名前:nobodyさん mailto:sage [2012/01/12(木) 23:49:13.05 ID:???]
- >>723
日付が変わってればキャッシュを破棄しそうなもんだけど。 プロキシ的なものが挟まってたりしない? 一応試せることとしては、たとえばIEならCtrl+F5ですべて再読み込みする
- 725 名前:nobodyさん mailto:sage [2012/01/12(木) 23:52:16.83 ID:???]
- >>723
ブラウザ特有の現象かもしれないから後でちゃんと自分で調べるとして とりあえずそういう時は応急処置にファイル名に適当な文字列を追加するもんだ echo '<script type="text/javascript" src="test.js?' . md5(microtime(true)) . '">';
- 726 名前:nobodyさん mailto:sage [2012/01/13(金) 00:05:03.08 ID:???]
- なんでmd5かけるの?
- 727 名前:nobodyさん mailto:sage [2012/01/13(金) 00:11:52.36 ID:???]
- バカだからに決まってるじゃん
- 728 名前:nobodyさん mailto:sage [2012/01/13(金) 00:29:29.21 ID:???]
- ドットが入るのが嫌だっただけ
かけたくないならかけなくていい
- 729 名前:nobodyさん mailto:sage [2012/01/13(金) 00:33:49.01 ID:???]
- ドット・・・?
- 730 名前:nobodyさん mailto:sage [2012/01/13(金) 00:36:37.67 ID:???]
- 小数点
|

|