2

CodeIgniter で wget を使わずに cron ジョブを実行したいです。私はこのように使用しています:

*/1 * * * * wget  http://assurance.com/controller/function

正常に動作しますが、wget を使用したくありません。

この CodeIgniter スクリプトを実行する別の方法はありますか?

4

3 に答える 3

1

次のようなものを試して使用できます。

* * * * * /usr/bin/php  /pathToTheApp/controller/function

もちろん、これ/usr/bin/phpは PHP バイナリへのパスであり、CI アプリケーションへの絶対pathToTheAppパスである必要があります。

于 2012-07-14T08:15:12.383 に答える
0

ホストでローカル シェルにアクセスできる場合は、そこの crontab に追加します。

于 2012-07-14T06:10:10.637 に答える
0

私は最近この正確なことをする必要があり、完全な解決策を見つけることができませんでした. そこで、ここで提供しようと思います。

コントローラーへのコマンドライン (CLI) 呼び出しを http にしたかったので、「bash シェル」を使用しました (注: ubuntu/linux サーバーを使用しています。

次の 3 つの主要部分があります。

cron 呼び出し

シェルスクリプト

コントローラー機能


クロン:

サーバー cli で、これを入力して crontab にアクセスします: crontab -e

次に、cron 呼び出しを追加します。* * * * * bash /path/to/script/test.sh

(注: サイトのルートに cron というフォルダーを作成したので、パスは次のようになります。

/var/www/website/cron/test.sh


シェルスクリプト:

作成したcronフォルダーに、「test.sh」というファイルを作成します

ファイルに次のように入力します。

#!/bin/bash
cd /path/to/site
/usr/bin/php index.php controller function

それでおしまい

cron ファイルを呼び出すタイマーを設定します シェルは CLI からコントローラーを呼び出します

セキュリティを強化するために、関数で $this->input->is_cli_request() を使用できるようになりました。

public function cronTest()
{
    if($this->input->is_cli_request())
    {
        //code goes here;
    }        
}

これがあなたの時間を節約するのに役立つことを願っています、これは私が予想よりもずっと長くかかりました:)

于 2014-06-07T10:31:47.760 に答える