2016-02-13 4 views
-1

В Yii2.0 я установил задание cron в консольном контроллере для отправки почты. Его работа, когда я выполняю cmd php yii cron в подсказке.Yii2 set cron job with console controller

Мне нужно выполнить этот файл каждый час. Почему Cpanel не работает каждый час?

ответ

0

Вы можете задать команду, как это в хрон для CPanel

USR/бен/локон -k http://xxxxxxx.com/cron

ИЛИ

Wget -О/DEV/нуль http://xxxxxxx.com/cron

И вы должны установить время

0 * * * *

Благодаря

0 */3 * * * Ваша команда здесь

1

Вы должны использовать абсолютные пути как для PHP и Yii:

* */1 * * * /usr/bin/php /var/www/mysite/yii controller/action 

Это должно сделать трюк - при условии, что вы указываете правильные пути.

Чтобы узнать полный путь к РНР, запустите в консоли команду:

which php 
0

Создание консольного приложения

заранее шаблоне уже есть файл юй. И нет необходимости запускать его как php, это скрипт Linux.

Создание хрон сервисной команды

Создание контроллера в консоли/контроллеры

Я создал, как TestController.php

<?php 

namespace console\controllers; 

use yii\console\Controller; 

/** 
* Test controller 
*/ 
class TestController extends Controller { 

    public function actionIndex() { 
     echo "cron service runnning"; 
    } 

    public function actionMail($to) { 
     echo "Sending mail to " . $to; 
    } 

} 
?> 

Этот контроллер должен использовать консоль имя контроллера пространства

use yii\console\Controller; 

Как запустить его

запустить его как

yii test 

меня проверить его на окна, запустив

D:\xampp\htdocs\yii2>d:\xampp\php\php yii test 
cron service runnning 
D:\xampp\htdocs\yii2> 

Как пройти PARAMS

yii test/mail [--to="[email protected]"] 

в окна для r протестируйте его как.

D:\xampp\htdocs\yii2>d:\xampp\php\php yii test/mail [--to="[email protected]"] 
Sending mail to [--to="[email protected]"]