タグ

phpに関するmurayamのブックマーク (2)

  • ウノウラボ Unoh Labs: phpからバックグランドプロセスを呼ぶ

    こんにちは satoです webのphpスクリプトから 処理時間のかかるコマンドを呼ぶ際にバックグラウンドで行うため system("スクリプト名 > /dev/null &"); などとやるのですが、これだと apache reload などの際に hupシグナルでバックグラウンドで走っているスクリプトのプロセスも 死んでしまいます。 こんなときは system("nohup スクリプト名 > /dev/null &"); とやると hupシグナルを無視してスクリプトは実行し続けます。 apache restartがかかったときも プロセスが死なない niceな方法を募集中です!

  • PHPでマルチスレッド(バックグラウンド処理)を実現する方法 - EC studio 技術ブログ

    PHPで長時間かかる重い処理を行うとき、 マルチスレッドで動かせたらなぁ!と思うことがよくあります。 マルチスレッド処理を行うことで、時間のかかる処理を 複数同時に並列実行でき、高速化することができます。 (特に通信処理などで遅延がある場合に有効です) PHPにはpcntl_forkというプロセスをフォーク(複製)することが できる関数がありますが、これはPHPCGIモードで 動かしている場合にのみ有効です。 通常はPHPをApacheモジュールとして動作させていることが 多いので、これが使えないケースが多々あります。 他には、system関数などでシステムコールを行い、 など & を使って実行するという方法もありますが、 これもphpCGI版として実行できなければいけません。 システムコールで呼ぶプログラムをPerlなどで 書けばいいのですが、できればPHPで全部統一したいものです。

  • 1