Cron Job adalah sebuah  script yang dijlankan secara otomasi  berdasarkan jadwal  yang telah ditentukan. Cron Job sangat dibutuhkan untuk sebuah  proses di aplikasi yang kita bangun  yang dapat mengotomasikan misalnya update data secara berkala, kirim email ke user berdasarkan data yang telah mencapai kondisi tertentu, hapus data berkala, backup data berkala, daln lain-lain. Berikut langkah-langkah dalam membuat cron job di Yii :

  1. Buat file cron.php di folderkerja
      <?php
     // change the following paths if necessary
        $yii=dirname(__FILE__).'/../yii/framework/yii.php';
        $config=dirname(__FILE__).'/protected/config/cron.php';  
        // remove the following lines when in production mode
        defined('YII_DEBUG') or define('YII_DEBUG',true);
        // specify how many levels of call stack should be shown in each log message
        defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);
        require_once($yii);
        $app = Yii::createConsoleApplication($config)->run();
       ?>

     
  2. Buat file cron.php di folderkerja/protected/config
     <?php
     return array(
        'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
        'name'=>'Cron',
        'preload'=>array('log'),
        'import'=>array(
        'application.components.*',
        'application.models.*',
        ),
        // application components
        'components'=>array(
        'db'=>array(
        'connectionString' => 'mysql:host=localhost;dbname=nmdatabase',
        'emulatePrepare' => true,
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
        'enableProfiling' => true,
        ),
        'log'=>array(
        'class'=>'CLogRouter',
        'routes'=>array(
        array(
        'class'=>'CFileLogRoute',
        'logFile'=>'cron.log',
        'levels'=>'error, warning',
        ),
        array(
        'class'=>'CFileLogRoute',
        'logFile'=>'cron_trace.log',
        'levels'=>'trace',
        ),
        ),
        ),
        'functions'=>array(
        'class'=>'application.extensions.functions.Functions',
        ),
        ),
        );
        ?>

  3. Buat file CobaCOmmand.php di folderkerja/protected/commands/
    //inilah perintah yang akan dijalankan
    <?php
     class CobaCommand extends CConsoleCommand
        {
        public function run($args)
        {
            $connection=Yii::app()->db;
            $sql1 = "update aset set merk = 'tes cron job' where kode_aset='AST0003' ";
            $connection->createCommand($sql1)->execute();
        }
        }
       ?>

  4.  Script cron job selesai dibuat selanjutnya bisa kita tes caranya masuk ke command dos
    • Cd  E:\xampp\php\
    • php.exe  E:\xampp\htdocs\folderkerja\cron.php
    • akan muncu daftar perintah yang dapat dipilih seperti ini :
    • jalankan perintah  E:\xampp\htdocs\folderkerja\cron.php coba
       
  5.  Cek ke database data yang diudate via cron job akan terupdate. THanks...