假设Yii项目路径为 /home/apps/
1. 创建文件 /home/apps/protected/commands/crons.php
复制代码 代码如下:
<?php
$yii = "/home/apps/framework/yii.php";
require_once($yii);
$configFile = dirname(__FILE__)."/../config/console.php";
Yii::createConsoleApplication($configFile)->run();
2. 创建需要的配置文件 /home/apps/protected/config/console.php,配置需要的组件、数据库连接,日志等信息,格式类似主配置文件main.php
复制代码 代码如下:
<?php
return array(
"basePath"=>dirname(__FILE__).DIRECTORY_SEPARATOR."..",
"name"=>"Emergency",
"import"=>array(
"application.models.*",
"application.components.*",
"application.extensions.*",
),
"components"=>array(
"log"=>array(
"class"=>"CLogRouter",
"routes"=>array(
array(
"class"=>"CFileLogRoute",
"levels"=>"info, warning, error",
),
),
),
"db"=>array(
"class"=>"application.extensions.PHPPDO.CPdoDbConnection",
"pdoClass" => "PHPPDO",
"connectionString" => "mysql:host=xxxx;dbname=xxx",
"emulatePrepare" => true,
"username" => "xxx",
"password" => "xxx",
"charset" => "utf8",
"tablePrefix" => "tbl_",
),
),
"params" => require("params.php"),
);
3. 在 /home/apps/protected/commands/ 下新建 TestCommand 类,继承 CConsoleCommand,在TestCommand中,可以使用项目的配置信息和Yii的各种方法
复制代码 代码如下:
<?php
class TestCommand extends CConsoleCommand
{
public function run()
{
...
}
}
4. 创建定时任务
复制代码 代码如下:
$ crontab -e
插入
复制代码 代码如下:
1 * * * * /home/php/bin/php -f /home/apps/protected/commands/crons.php Test &
即为每小时的第一分钟执行TestCommand类中的内容,类似的可以在/home/apps/protected/commands/下新建其他类,使用命令行执行。