This article mainly introduces the method of creating cronjob scheduled tasks in Yii framework, and analyzes the related configuration, implementation steps and precautions of Yii scheduled tasks in the form of specific examples. Friends in need can refer to the examples in this article
Describes how Yii framework creates cronjob scheduled tasks. Share it with everyone for your reference, the details are as follows:
1. Add environment configuration
protected/config/console.php
<?php require_once('env.php'); // This is the configuration for yiic console application. // Any writable CConsoleApplication properties can be configured here. return array( 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', 'name'=>'CMS Console', // application components 'components'=>array( //Main DB connection 'db'=>array( 'connectionString'=>DB_CONNECTION, 'username'=>DB_USER, 'password'=>DB_PWD, 'enableParamLogging'=>true, ), 'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array( 'class'=>'CFileLogRoute', 'levels'=>'error, warning', ), ), ), ), );
2. Add a scheduled task execution module
protected/commands/crons.php
<?php defined('YII_DEBUG') or define('YII_DEBUG',true); // including Yii require_once('/../framework/yii.php'); // we'll use a separate config file $configFile='/config/console.php'; // creating and running console application Yii::createConsoleApplication($configFile)->run();
3. Add a specific scheduled task
Timing The task is usually a command line program, derived from the CConsoleCommand class, such as
protected/commands/TestCommand.php
class TestCommand extends CConsoleCommand { public function run($args) { //todo } }
4. Create a cronjob
30 0 * * * www php /path/to/crons.php Test >>/path/to/logs/test.log
5. Pass in the parameters to run($params) in the scheduled task
30 0 * * * www php /path/to/crons.php Test param1 param2 ...
The above is the detailed content of Detailed explanation of examples of creating cronjob scheduled tasks in Yii. For more information, please follow other related articles on the PHP Chinese website!