Pocket
LINEで送る

はまりにはまって、ようやく、さくらサーバでのcakePHPのcronができました (ToT)/

cakePHPのConsole用cake.phpから、作成したShellを呼び出すんですね。
Consle用のcake.phpは、/appフォルダから呼び出さないといけないらしい。
下記が、さくらのcronの実行コマンドになります。

cd /home/アカウント名/www/プロジェクト名/app/ ; /usr/local/bin/php /home/アカウント名/www/プロジェクト名/app/Console/cake.php Hoge

まず、appフォルダに移動して、PHPでコンソールのcake.phpを起動し、Hogeを渡しています。
Hogeはシェル名ですので、自分で作成した名前になります。実際に実行したいコードは、このシェルに書きます。

シェルは、cakePHP2.3ですと、/app/Console/Command/に、HogeShell.phpといった名前で保存します。これはシェル名がHogeの場合です。
HogeShell.phpの中身は、下記のようになります。

<?php
class HogeShell extends AppShell {
    var $uses = array('User');

    public function main(){
        $this->log('hoge start!!!');
        $this->out('hoge start!!!');
    }
}

これだけです。main関数の場合は、Hogeと指定するだけで、main関数が実行されますが、別の関数の場合は、関数名と共に呼び出す必要があり、Hoge func arg といった感じで、シェル名、関数名、引数を半角空白を入れながら続けて書けばよいようです。引数は、コントローラーと異なる受け取り方になります。

参考:
Cakephp】【さくらサーバー】【cron】cakephpでさくらサーバーのcronを使いたい…
cakephpのbatch実行方法について
Console and Shells

Pocket
LINEで送る


1件のコメント

AWS - Cron - Logicky Blog · 05/27/2015 17:03

[…] 参考: cronで自動実行 【AWS】 Amazon Linuxでのcronジョブ設定 cakePHP2.3 cron (さくらサーバ) […]

コメントください

関連記事

プログラミング

Go言語によるビットコインのフルノード実装btcdを調べる(2)

btcdを実行した際のプログラムの流れを最初から確認してみます。 se 続きを読む …

プログラミング

Go – leveldb

Goで使えるLevelDB。 syndtr/goleveldb ドキュ 続きを読む …

%d人のブロガーが「いいね」をつけました。