CakePHP 1.3中的Cronjob

时间:2014-02-15 13:13:27

标签: cakephp cron

我需要在我的旧网站(CakePHP 1.3)中使用cron作业。 我做了以下步骤:

  1. /somepath/public_html/app/vendors/shells/valute.php

    中创建了shell
    class ValuteShell extends Shell {
        var $uses = array('Valute');
        function main() {
            $this->Valute->cacheGetKonverterData();
        }
    }
    
  2. 创建了BASH脚本并将其保存到我的供应商文件夹中cakeshell (/somepath/public_html/app/vendors/cakeshell)

    #!/bin/bash
    TERM=dumb
    export TERM
    cmd="cake"
    while [ $# -ne 0 ]; do
        if [ "$1" = "-cli" ] || [ "$1" = "-console" ]; then
            PATH=$PATH:$2
            shift
        else
            cmd="${cmd} $1"
        fi
        shift
    done
    $cmd
    
  3. 将此文件的权限更改为777。

  4. 这样称为cronjob:

    0  0   *   *   *   /somepath/public_html/app/vendors/cakeshell valute -cli /usr/bin -console /somepath/public_html/cake/console -app /somepath/public_html/app
    
  5. 不幸的是,cronjob不起作用。为什么? 我打电话时:http://www.somedomain.net/valutes/save_valute 一切正常。

    <?php
    class ValutesController extends AppController {
        var $name = 'Valutes';
        var $uses = array('Valute'); 
    
        function save_valutes()
        {
            $this->layout = null; // turn off the layout    
            $this->Valute->cacheGetKonverterData();
        }   
    }
    ?>
    

1 个答案:

答案 0 :(得分:0)

cakeshellcmd应该具有Cake核心的cake文件的路径

cmd="/somepath/public_html/lib/Cake/Console/cake"

crontab

0 0 * * * /somepath/public_html/app/vendors/cakeshell valute -app /somepath/public_html/app >> var/log/crontab