未分類

CakePHPからphpスクリプトをバックグラウンドで起動する

投稿日:

時間のかかる処理がある場合、
phpスクリプトをキックするだけで画面ではレスポンスを返したい場合があります。

app/Console/Command/text.php
に実行したいphpスクリプトを置きます。
ディレクトリの権限には注意する必要があります。

コントローラー側では以下のようにスクリプトを呼び出します。

public function phpexcute(){

    $cmd='/usr/bin/php /var/www/html/cakephp/app/Console/Command/test.php > /dev/null &';
    Debugger::dump(exec($cmd));
}

ポイントは
/usr/bin/php の引数として実行したいphpファイルを指定することと、
/dev/null &
です。

/dev/null &
をいれないと、処理が終了するまで画面がとまってしまいます。

Gooleアドセンス用336

Gooleアドセンス用336

-未分類
-,

執筆者:

関連記事

CakePHP query時のキャッシュをオフにする方法

Controllerのアクション内で 更新とSELECTをループすると正常な値が取得できません。 それはCakePHPがキャッシュを見てしまうからです。 キャッシュをオフにするには、 第二引数をfal …

asp

IIS(ASP.NET)ではネットワークドライブの割り当てを使ってはいけない

以前「タスクタスクスケジュールではネットワークドライブの割り当てを使ってはいけない」 という記事を記載したが、ASP上でも同じことが言えます。 ASPも実行するのがログインしているユーザーとはことなり …

basename関数で日本語が入るとファイル名を抜きだせない

$uploadfile = $uploaddir.DS.basename($file[‘name’]); とした場合、ファイル名に日本語が含まれる場合basename関数が正しく機能してくれません。 …

CakePHPでパスワードを暗号化して保存する

CakePHPでパスワードを暗号化して保存するには、 モデルにbeforeSaveメソッドを以下のように追加します。 モデル User.php App::uses(‘AuthComponent’, ‘ …

PHPでCSVの読み込みにマルチバイトを使用する

csvを読み込もうとするとどうしてもマルチバイトが文字化けしてしまいました。 array( (int) 0 => ‘XXXXXXXXX’, (int) 1 => ‘eストメッセージ htt …